3 * configure: Regenerate.
4 * configure.in: Build elf-ifunc.o for AArch64.
5 * elfnn-aarch64.c: Include objalloc.h.
6 (elfNN_aarch64_local_htab_hash): New function.
7 (elfNN_aarch64_local_htab_eq): New function.
8 (elfNN_aarch64_get_local_sym_hash): New function.
9 (elfNN_aarch64_link_hash_table_create): Initialize local STT_GNU_IFUNC
11 (elfNN_aarch64_hash_table_free): Free local STT_GNU_IFUNC symbol hash.
12 (elfNN_aarch64_final_link_relocate): Add sym argument. Add support
13 for handling STT_GNU_IFUNC symbols.
14 (elfNN_aarch64_gc_sweep_hook): Add support for garbage collecting
15 references to STT_GNU_IFUNC symbols.
16 (elfNN_aarch64_adjust_dynamic_symbol): Add support for handling
17 STT_GNU_IFUNC symbols.
18 (elfNN_aarch64_check_relocs): Add support for handling STT_GNU_IFUNC
19 symbols. Ensure we don't increase plt.refcount from -1 to 0.
20 (elfNN_aarch64_post_process_headers): Call _bfd_elf_set_osabi.
21 (elfNN_aarch64_is_function_type): Remove function.
22 (elfNN_aarch64_allocate_dynrelocs): Handle STT_GNU_IFUNC symbols.
23 (elfNN_aarch64_allocate_ifunc_dynrelocs): New function.
24 (elfNN_aarch64_allocate_local_dynrelocs): New function.
25 (elfNN_aarch64_allocate_local_ifunc_dynrelocs): New function.
26 (elfNN_aarch64_size_dynamic_sections): Call
27 elfNN_aarch64_allocate_local_dynrelocs.
28 (elfNN_aarch64_create_small_pltn_entry): Add info argument.
29 Add support for creating .iplt entries for STT_GNU_IFUNC symbols.
30 (elfNN_aarch64_finish_dynamic_symbol): Add support for handling
31 STT_GNU_IFUNC symbols and .iplt.
32 (elfNN_aarch64_finish_local_dynamic_symbol): New function.
33 (elfNN_aarch64_finish_dynamic_sections): Call
34 elfNN_aarch64_finish_local_dynamic_symbol.
38 * cpu-msp430.c: Use printable names that match the values
43 * elfnn-aarch64.c (TCB_SIZE): Base on the ARCH_SIZE rather than a
48 * elfxx-mips.c (mips_elf_create_got_section): Hide
49 _GLOBAL_OFFSET_TABLE_.
53 * elf32-mips.c (ELF_OSABI): Undef for vxworks.
57 * syms.c (_bfd_stab_section_find_nearest_line): Ignore partial
58 stabs at end of .stab. Tidy variable usage. Don't drop the need
59 for a NULL function name stab if If N_FUN stab is ignored.
60 Ensure index entry count loop matches write loop.
64 * configure: Regenerate.
68 * configure.in: Bump version to 2.24.51
69 * configure: Regenerate.
73 * elfxx-mips.c (_bfd_mips_elf_print_private_bfd_data): Handle
78 * elf64-hppa.c (elf_hppa_final_link_relocate): Add missing '%' to
83 * elf64-x86-64.c (elf_x86_64_check_tls_transition): Allow
84 64-bit -mcmodel=large -fpic TLS GD and LD sequences.
85 (elf_x86_64_relocate_section): Handle -mcmodel=large -fpic
86 TLS GD and LD sequences in GD->LE, GD->IE and LD->LE transitions.
90 * elf-bfd.h (struct elf_backend_data): Remove as_needed_cleanup.
92 * elf64-ppc.c (elf_backend_as_needed_cleanup): Don't define.
93 (elf_backend_notice_as_needed): Define.
94 (ppc64_elf_as_needed_cleanup): Rename and adjust..
95 (ppc64_elf_notice_as_needed): ..to this.
96 * elflink.c (_bfd_elf_notice_as_needed): New function, extracted..
97 (elf_link_add_object_symbols): ..from here.
98 * elfxx-target.h (elf_backend_as_needed_cleanup): Don't define.
99 (elf_backend_notice_as_needed): Define..
100 (elfNN_bed): ..and use here.
104 * archures.c (bfd_mach_i386_nacl, bfd_mach_i386_i386_nacl): New macros.
105 (bfd_mach_x86_64_nacl, bfd_mach_x64_32_nacl): New macros.
106 * cpu-i386.c (bfd_arch_i386_onebyte_nop_fill): New function.
107 (bfd_i386_nacl_arch): New variable.
108 (bfd_x86_64_nacl_arch, bfd_x64_32_nacl_arch): New variables.
109 (bfd_x64_32_arch_intel_syntax): Link them into the list.
110 * bfd-in2.h: Regenerate.
114 * elf-nacl.c (nacl_modify_segment_map): Fix logic reordering the
115 elf_segment_map list. If an executable segment is page-aligned
116 but does not end with a full page, then append a fake section into
117 the segment map entry that pads out the page.
118 (nacl_final_write_processing): New function. Write the code fill
119 laid out in nacl_modify_segment_map.
120 * elf-nacl.h: Declare it.
121 * elf32-arm.c (elf32_arm_nacl_final_write_processing): New function.
122 (elf_backend_final_write_processing): Define it for NaCl backend.
123 * elf32-i386.c (elf_backend_final_write_processing): Likewise.
124 * elf64-x86-64.c (elf_backend_final_write_processing): Likewise.
126 * elf-nacl.c (segment_eligible_for_headers): Rename MAXPAGESIZE
127 parameter to MINPAGESIZE.
128 (nacl_modify_segment_map): Use minpagesize instead of maxpagesize.
130 * elf32-arm.c (ELF_MINPAGESIZE, ELF_COMMONPAGESIZE): #undef for NaCl.
134 * elf32-tilepro.c (tilepro_elf_finish_dynamic_sections): Don't
135 set GOT's entry size if there is no ELF section data.
136 * elf64-s390.c (elf_s390_finish_dynamic_sections): Likewise.
137 * elfxx-sparc.c (_bfd_sparc_elf_finish_dynamic_sections):
142 * elf64-x86-64.c (get_elf_x86_64_arch_data): New.
143 (get_elf_x86_64_backend_data): Use it.
144 (elf_x86_64_size_dynamic_sections): Likewise.
149 * bfdio.c: Fix typos.
150 * elf32-spu.c: Likewise.
151 * elfnn-aarch64.c: Likewise.
155 * coff-rs6000.c (_bfd_xcoff_sizeof_headers): Also count
157 * coffcode.h (coff_compute_section_file_positions): Force
158 match between file offset and vma offset.
162 * elflink.c (_bfd_elf_merge_symbol): Set *poldbfd, *poldweak,
163 and *poldalignment before exiting when !relocs_compatible.
167 * elflink.c (_bfd_elf_define_linkage_sym): Don't set STV_INTERNAL
168 symbols to STV_HIDDEN.
173 * elf32-arm.c (elf32_arm_final_link_relocate): Use origin of output
174 segment containing the relocating symbol instead of assuming 0 for
175 sb group relocations.
179 * elf32-rl78.c (rl78_elf_merge_private_bfd_data): Complain if G10
180 flag bits do not match.
181 (rl78_elf_print_private_bfd_data): Describe G10 flag.
185 * po/BLD-POTFILES.in: Regenerate.
186 * po/SRC-POTFILES.in: Likewise.
191 * elf32-arm.c (elf32_arm_final_link_relocate): Base SB on the
196 * elf64-hppa.c (elf64_hppa_finish_dynamic_sections)
197 <DT_HP_LOAD_MAP>: Return unsuccessfully if there's no `.data'
202 * elfnn-aarch64.c (elfNN_aarch64_check_relocs):
203 Use the correct alignment for
204 _bfd_elf_make_dynamic_reloc_section for ILP32.
208 * elfnn-aarch64.c (elfNN_aarch64_howto_from_bfd_reloc): Handle
209 BFD_RELOC_AARCH64_NONE explicitly.
213 * elf32-vax.c (elf_vax_finish_dynamic_sections): Don't set GOT's
214 entry size if there is no ELF section data.
218 * elf32-vax.c (elf_vax_check_relocs) <R_VAX_GOT32, R_VAX_PLT32>:
219 Don't check symbol visibility here. Remove a check already
221 (elf_vax_instantiate_got_entries): Use SYMBOL_REFERENCES_LOCAL
222 instead of individual checks.
223 (elf_vax_relocate_section) <R_VAX_GOT32, R_VAX_PLT32>: Only
224 check the offset to decide if produce a GOT or PLT entry.
225 Remove redundant assertions. Remove code to produce GOT entries
226 for local symbols. Remove a duplicate comment and add a comment
228 (elf_vax_finish_dynamic_symbol): Remove code to produce RELATIVE
233 * elf32-vax.c (elf_vax_always_size_sections): Correct a comment
238 * elf32-vax.c (elf_vax_discard_got_entries): New function.
239 (elf_vax_always_size_sections): Likewise.
240 (elf_vax_size_dynamic_sections): Remove code moved to
241 elf_vax_always_size_sections. Make comment on
242 elf_vax_instantiate_got_entries match reality.
243 (elf_vax_instantiate_got_entries): Assert that rather than check
244 if dynobj is null. Don't check for dynamic_sections_created.
245 Make function description match reality.
246 (elf_backend_always_size_sections): New macro.
250 * elf64-ppc.c (struct ppc64_elf_obj_tdata): Replace opd_relocs
252 (opd_entry_value): Cache .opd section contents.
253 (ppc64_elf_relocate_section): Adjust.
259 * elflink.c (elf_link_add_object_symbols): Correct test in
260 last patch. Remove unnecessary code.
264 * coff-rs6000.c (xcoff_howto_table): Fix masks and pc_relative for
265 R_RBR. Add numbers in comments.
266 (_bfd_xcoff_reloc_type_lookup): Handle BFD_RELOC_PPC_B16.
267 * coff64-rs6000.c: Likewise.
273 * elflink.c (elf_link_add_object_symbols): Don't clobber
274 .gnu.warning.symbol sections when shared.
278 * elf32-rx.c (rx_elf_relocate_section): Fix typo: move
279 saw_subtract from R_RX_OPdiv to R_RX_OPneg.
284 * elf32-msp430.c (R_MSP430_10_PCREL): Use 10-bit source and
286 * R_MSP430_2X_PCREL: Likewise.
287 * R_MSP430X_10_PCREL: Likewise.
288 * R_MSP430X_2X_PCREL: Likewise.
292 * elf32-arm.c (arm_type_of_stub): Don't use ST_BRANCH_TO_ARM for
294 (elf32_arm_final_link_relocate): Likewise.
298 * mach-o.c (mach_o_section_name_xlat dw): Add entry for
303 * elf32-arm.c (elf32_arm_stub_long_branch_arm_nacl): New variable.
304 (elf32_arm_stub_long_branch_arm_nacl_pic): New variable.
305 (arm_build_one_stub): Increase MAXRELOCS to 3.
306 (arm_type_of_stub): Use them if GLOBALS->nacl_p.
307 (struct elf32_arm_link_hash_table): Give add_stub_section member's
308 pointee type a third argument.
309 (elf32_arm_create_or_find_stub_sec): Update caller.
310 (elf32_arm_size_stubs): Update argument type.
311 * bfd-in.h (elf32_arm_size_stubs): Update decl.
312 * bfd-in2.h: Regenerate.
313 * libbfd.h: Regenerate.
317 * elfxx-mips.c (mips_elf_merge_obj_attributes): Replace hardcoded
318 magic numbers with enum values.
322 * reloc.c: Add BFD_RELOC_390_PC12DBL, BFD_RELOC_390_PLT12DBL,
323 BFD_RELOC_390_PC24DBL, BFD_RELOC_390_PLT24DBL (should have
324 been added here with 2013-07-05 elf32-s390.c change).
325 * bfd-in2.h: Regenerate (no-op).
326 * libbfd.h: Regenerate (no-op).
330 * elfxx-mips.c (_bfd_mips_elf_merge_private_bfd_data): Handle
332 (_bfd_mips_elf_print_private_bfd_data): Likewise.
336 * vms-alpha.c (struct vms_private_data_struct): Remove
337 flag_hash_long_names and flag_show_after_trunc.
338 (hash_string): Remove.
339 (_bfd_vms_length_hash_symbol): Remove.
340 (alpha_vms_write_exec): Remove call to _bfd_vms_length_hash_symbol.
341 (_bfd_vms_write_egsd): Likewise. Rewrite condition.
342 (_bfd_vms_write_ehdr): Remove code that set removed flags.
343 (_bfd_vms_write_etir): Remove call to _bfd_vms_length_hash_symbol.
344 (vms_bfd_is_local_label_name): Remove trace call.
348 * hosts/alphavms.h: Include config.h and ansidecl.h, remove useless
350 * configure.com: Adjust to match changes in configure.
351 * makefile.vms (OBJS): Update list.
355 * coffcode.h (coff_write_object_contents): Use ".ovrflo" name for
360 * elf32-s390.c: Add new relocation definitions R_390_PC12DBL,
361 R_390_PLT12DBL, R_390_PC24DBL, and R_390_PLT24DBL.
362 (elf_s390_reloc_type_lookup, elf_s390_check_relocs)
363 (elf_s390_gc_sweep_hook, elf_s390_relocate_section): Support new
365 * elf64-s390.c: See elf32-s390.c
366 * bfd-in2.h: Add new relocs to enum bfd_reloc_code_real.
367 * libbfd.h: Add new reloc strings.
371 * elfnn-aarch64.c (elfNN_aarch64_final_link_relocate): Reorder case
373 (elfNN_aarch64_relocate_section): Likewise.
374 (elfNN_aarch64_gc_sweep_hook): Likewise.
375 (elfNN_aarch64_check_relocs): Likewise.
379 * elf64-ppc.c (ppc64_elf_func_desc_adjust): Don't hide .TOC.
380 when relocatable. Don't change root.type or type here.
381 (ppc64_elf_set_toc): Set type of .TOC. to STT_OBJECT.
385 * elf64-ppc.c (struct ppc_stub_hash_entry): Delete "addend".
386 (ppc64_elf_size_stubs): Don't set "addend".
387 (ppc64_elf_relocate_section): Don't allow calls via
388 toc-adjusting stubs without a following nop even in an
389 executable, except for self-calls and both libc_start_main
390 and .libc_start_main.
394 * elf64-ppc.c (ppc64_elf_func_desc_adjust): Hide ".TOC.".
398 * coff-rs6000.c (xcoff_find_nearest_line_discriminator): Add missing
403 * vms-alpha.c (_bfd_generic_find_nearest_line_discriminator): Define.
404 (_bfd_vms_find_nearest_line_discriminator): New function.
408 * coff-rs6000.c (xcoff_create_csect_from_smclas): Handle more smclas.
412 * coff-rs6000.c (xcoff_find_nearest_line_discriminator): New function.
413 (rs6000coff_vec): Reference it.
417 * elfnn-aarch64.c (aarch64_elf_create_got_section): New.
418 (elfNN_aarch64_check_relocs): Use aarch64_elf_create_got_section.
419 (elfNN_aarch64_create_dynamic_sections): Do not define
420 _GLOBAL_OFFSET_TABLE_; call aarch64_elf_create_got_section.
424 * ld-aarch64/emit-relocs-309-low.d: Adjust .text address.
425 * ld-aarch64/emit-relocs-309-up.d: Adjust .got address.
426 * ld-aarch64/emit-relocs-312.d: Adjust offsets into .got.
427 * ld-aarch64/tls-relax-all.d: Likewise.
428 * ld-aarch64/gc-got-relocs.d: Adjust expected .got content.
429 * ld-aarch64/gc-tls-relocs.d: Likewise.
430 * ld-aarch64/tls-relax-gd-ie.d: Likewise.
431 * ld-aarch64/tls-relax-gdesc-ie-2.d: Likewise.
432 * ld-aarch64/tls-relax-gdesc-ie.d: Likewise.
436 * elf64-ppc.c (ppc64_elf_relocate_section): Set "relocation" for
437 .TOC. after relocatable check.
441 * elf64-ppc.h (ppc64_elf_toc): Delete.
442 (ppc64_elf_set_toc): Declare.
443 * elf64-ppc.c (ppc64_elf_toc_reloc): Replace call to ppc64_elf_toc
444 with call the ppc64_elf_set_toc.
445 (ppc64_elf_toc_ha_reloc, ppc64_elf_toc64_reloc): Likewise.
446 (ppc64_elf_start_multitoc_partition): Likewise.
447 (struct ppc_link_hash_table): Delete dot_toc_dot. Replace all uses
449 (ppc64_elf_process_dot_syms): Don't make a fake function descriptor
451 (ppc64_elf_check_relocs): Mark sections with a reference to .TOC.
452 as needing a toc pointer.
453 (ppc64_elf_size_stubs): Don't set dot_toc_dot here.
454 (ppc64_elf_set_toc): Rename from ppc64_elf_toc. Add info param.
460 * elf64-x86-64.c (elf_x86_64_relocate_section): Handle
466 * elf32-arm.c (allocate_dynrelocs_for_symbol): Revert previous patch.
470 * elfnn-aarch64.c (elfNN_aarch64_check_relocs): Reserve one slot
472 (elfNN_aarch64_finish_dynamic_sections): Place the &_DYNAMIC reference
473 in sgot[0] rather than sgotplt[0].
477 * Makefile.am (elf32-aarch64.c): Add a #line cpp directive at the
478 beginning of the generated file.
479 (elf64-aarch64.c): Likewise.
480 * Makefile.in: Re-generated.
484 * Makefile.am (BFD64_BACKENDS): Add elfxx-aarch64.c.
485 (BFD64_BACKENDS_CFILES): Add elfxx-aarch64.lo.
486 * Makefile.in: Re-generated.
487 * configure.in (bfd_elf64_bigaarch64_vec): Add elfxx-aarch64.lo.
488 (bfd_elf64_littleaarch64_vec): Likewise.
489 (bfd_elf32_bigaarch64_vec): Likewise.
490 (bfd_elf32_littleaarch64_vec): Likewise.
491 * configure: Re-generated.
492 * elfxx-aarch64.c: New file; split from elf64-aarch64.c.
493 * elfxx-aarch64.h: New file.
494 * elfnn-aarch64.c: Include "elfxx-aarch64.h"; move the following
495 stuff to elfxx-aarch64.c.
496 (bfd_elf_aarch64_put_addend): Removed.
497 (PG_OFFSET, PG): Likewise.
498 (elfNN_aarch64_small_plt0_entry): Support ELF32.
499 (elfNN_aarch64_tlsdesc_small_plt_entry): Likewise.
500 (elf64_aarch64_grok_prstatus): Removed.
501 (elf_backend_grok_prstatus): Removed.
503 (aarch64_unsigned_overflow): Likewise.
504 (aarch64_signed_overflow): Likewise.
505 (aarch64_resolve_relocation): Likewise.
507 (decode_branch_ofs_26): Likewise.
508 (decode_cond_branch_ofs_19): Likewise.
509 (decode_ld_lit_ofs_19): Likewise.
510 (decode_tst_branch_ofs_14): Likewise.
511 (decode_movw_imm): Likewise.
512 (decode_adr_imm): Likewise.
513 (decode_add_imm): Likewise.
514 (reencode_branch_ofs_26): Likewise.
515 (reencode_cond_branch_ofs_19): Likewise.
516 (reencode_ld_lit_ofs_19): Likewise.
517 (reencode_tst_branch_ofs_14): Likewise.
518 (reencode_movw_imm): Likewise.
519 (reencode_adr_imm): Likewise.
520 (reencode_ldst_pos_imm): Likewise.
521 (reencode_add_imm): Likewise.
522 (reencode_movzn_to_movz): Likewise.
523 (reencode_movzn_to_movn): Likewise.
524 (aarch64_relocate): Update to call the new function names in
526 (aarch64_calculate_got_entry_vma): Likewise.
527 (elfNN_aarch64_final_link_relocate): Likewise.
528 (elf64_aarch64_update_plt_entry): Likewise; change the type of the
529 parameter 'r_type' to bfd_reloc_code_real_type; rename to ...
530 (elf_aarch64_update_plt_entry): ... this.
531 (elfNN_aarch64_create_small_pltn_entry): Update.
532 (elfNN_aarch64_init_small_plt0_entry): Remove plt_got_base; add
533 bfd_vma plt_got_2nd_ent; update to call elf_aarch64_update_plt_entry.
534 (elfNN_aarch64_finish_dynamic_sections): Add plt_entry; update to
535 call elf_aarch64_update_plt_entry.
539 * bfd-in2.h: Re-generated.
540 * elfnn-aarch64.c (HOWTO64, HOWTO32): New define.
541 (IS_AARCH64_TLS_RELOC): Change to be based on the
542 bfd reloc enumerators.
543 (IS_AARCH64_TLSDESC_RELOC): Likewise.
544 (PG, PG_OFFSET): Cast literal to bfd_vma.
545 (elf64_aarch64_howto_table): Removed.
546 (elf64_aarch64_howto_dynrelocs): Removed.
547 (elf64_aarch64_tls_howto_table): Removed.
548 (elf64_aarch64_tlsdesc_howto_table): Removed.
549 (elfNN_aarch64_howto_table): New table to host all howto entires..
550 (R_AARCH64_*): Replaced by AARCH64_R (*) and AARCH64_R_STR (*).
551 (elfNN_aarch64_bfd_reloc_from_howto): New function.
552 (elfNN_aarch64_bfd_reloc_from_type): Ditto.
553 (struct elf_aarch64_reloc_map): New.
554 (elf_aarch64_reloc_map): New table.
555 (elfNN_aarch64_howto_from_bfd_reloc): New function.
556 (elfNN_aarch64_howto_from_type): Update to look up the new table
557 elfNN_aarch64_howto_table.
558 (struct elf64_aarch64_reloc_map): Remove.
559 (elf64_aarch64_reloc_map): Remove.
560 (elfNN_aarch64_reloc_type_lookup): Change to call
561 elfNN_aarch64_howto_from_bfd_reloc.
562 (elfNN_aarch64_reloc_name_lookup): Change to look up the new table
563 elfNN_aarch64_howto_table.
564 (aarch64_resolve_relocation): Refactor to switch on the bfd
566 (bfd_elf_aarch64_put_addend): Likewise.
567 (elfNN_aarch64_final_link_relocate): Likewise.
568 (aarch64_tls_transition_without_check): Likewise.
569 (aarch64_reloc_got_type): Likewise.
570 (aarch64_can_relax_tls): Likewise.
571 (aarch64_tls_transition): Likewise.
572 (elfNN_aarch64_tls_relax): Likewise.
573 (elfNN_aarch64_final_link_relocate): Likewise.
574 (elfNN_aarch64_relocate_section): Likewise.
575 (elfNN_aarch64_gc_sweep_hook): Likewise.
576 (elfNN_aarch64_check_relocs): Likewise.
577 (aarch64_tls_transition): Change to return a bfd reloc enumerator.
578 * libbfd.h: Re-generated.
579 * reloc.c: Re-order the AArch64 bfd reloc enumerators.
580 (BFD_RELOC_AARCH64_RELOC_START)
581 (BFD_RELOC_AARCH64_RELOC_END)
582 (BFD_RELOC_AARCH64_LD_GOT_LO12_NC)
583 (BFD_RELOC_AARCH64_LD32_GOT_LO12_NC)
584 (BFD_RELOC_AARCH64_TLSDESC_LD_LO12_NC)
585 (BFD_RELOC_AARCH64_TLSDESC_LD32_LO12_NC)
586 (BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_LO12_NC)
587 (BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC)
588 (BFD_RELOC_AARCH64_IRELATIVE): New relocs.
592 * Makefile.am (BFD64_BACKENDS): Add elf32-aarch64.lo.
593 (BUILD_CFILES): Add elf32-aarch64.c.
594 (elf32-aarch64.c): New rule for generating from elfnn-aarch64.c.
595 * Makefile.in: Re-generated.
596 * archures.c (bfd_mach_aarch64_ilp32): New define.
597 * bfd-in.h (bfd_elf32_aarch64_init_maps): New declaration.
598 (bfd_elf32_aarch64_set_options): Ditto.
599 (elf32_aarch64_setup_section_lists): Ditto.
600 (elf32_aarch64_next_input_section): Ditto.
601 (elf32_aarch64_size_stubs): Ditto.
602 (elf32_aarch64_build_stubs): Ditto.
603 * bfd-in2.h: Re-generated.
604 * config.bfd (aarch64-*-elf): Add bfd_elf32_littleaarch64_vec
605 and bfd_elf32_bigaarch64_vec.
606 (aarch64-*-linux*): Likewise.
607 (aarch64_be-*-elf): Likewise.
608 (aarch64_be-*-linux*): Likewise.
609 * configure.in (bfd_elf32_bigaarch64_vec)
610 (bfd_elf32_littleaarch64_vec): New.
611 * configure: Re-generated.
612 * cpu-aarch64.c (compatible): Don't allow mixing ilp32 objects with
614 (bfd_aarch64_arch_ilp32): New.
615 (bfd_aarch64_arch): Link to bfd_aarch64_arch_ilp32.
616 * elfnn-aarch64.c (ARCH_SIZE): New define.
617 (AARCH64_R, AARCH64_R_STR, LOG_FILE_ALIGN): New defines.
618 (GOT_ENTRY_SIZE): Re-define as (ARCH_SIZE / 8).
619 (elf64_aarch64_*): Rename to elfNN_aarch64_*.
620 (ELF64_R_*): Rename to ELFNN_R_*.
621 Plus other paramaterization.
622 * targets.c (bfd_elf32_bigaarch64_vec, bfd_elf32_littleaarch64_vec):
624 (_bfd_target_vector): Add bfd_elf32_bigaarch64_vec and
625 bfd_elf32_littleaarch64_vec.
629 * Makefile.am (BFD64_BACKENDS_CFILES): Remove elf64-aarch64.c.
630 (BUILD_CFILES): Add elf64-aarch64.c.
631 (elf64-aarch64.c): New rule for generating from elfnn-aarch64.c.
632 * Makefile.in: Re-generated.
633 * elf64-aarch64.c: Rename to ...
634 * elfnn-aarch64.c: ... this.
639 * elfxx-mips.h (_bfd_mips_elf_insn32): New prototype.
640 * elfxx-mips.c (mips_elf_link_hash_table): Add insn32 member.
641 (STUB_MOVE32_MICROMIPS, STUB_JALR32_MICROMIPS): New macros.
642 (MICROMIPS_INSN32_FUNCTION_STUB_NORMAL_SIZE): Likewise.
643 (MICROMIPS_INSN32_FUNCTION_STUB_BIG_SIZE): Likewise.
644 (micromips_insn32_o32_exec_plt0_entry): New variable.
645 (micromips_insn32_o32_exec_plt_entry): Likewise.
646 (_bfd_mips_elf_adjust_dynamic_symbol): Handle insn32 mode.
647 (mips_elf_estimate_stub_size): Likewise.
648 (_bfd_mips_elf_size_dynamic_sections): Likewise.
649 (_bfd_mips_elf_finish_dynamic_symbol): Likewise.
650 (mips_finish_exec_plt): Likewise.
651 (_bfd_mips_elf_relax_section): Likewise.
652 (_bfd_mips_elf_insn32): New function.
653 (_bfd_mips_elf_get_synthetic_symtab): Handle insn32 PLT.
657 * elfxx-mips.h (_bfd_mips_elf_get_synthetic_symtab): New
659 * elf32-mips.c (elf_backend_plt_sym_val): Remove macro.
660 (bfd_elf32_get_synthetic_symtab): New macro.
661 * elfxx-mips.c (plt_entry): New structure.
662 (mips_elf_link_hash_entry): Add use_plt_entry member.
663 (mips_elf_link_hash_table): Rename plt_entry_size member to
664 plt_mips_entry_size. Add plt_comp_entry_size, plt_mips_offset,
665 plt_comp_offset, plt_got_index entries and plt_header_is_comp
667 (STUB_LW_MICROMIPS, STUB_MOVE_MICROMIPS): New macros.
668 (STUB_LUI_MICROMIPS, STUB_JALR_MICROMIPS): Likewise.
669 (STUB_ORI_MICROMIPS, STUB_LI16U_MICROMIPS): Likewise.
670 (STUB_LI16S_MICROMIPS): Likewise.
671 (MICROMIPS_FUNCTION_STUB_NORMAL_SIZE): Likewise.
672 (MICROMIPS_FUNCTION_STUB_BIG_SIZE): Likewise.
673 (micromips_o32_exec_plt0_entry): New variable.
674 (mips16_o32_exec_plt_entry): Likewise.
675 (micromips_o32_exec_plt_entry): Likewise.
676 (mips_elf_link_hash_newfunc): Initialize use_plt_entry.
677 (mips_elf_output_extsym): Update to use gotplt_union's plist
678 member rather than offset.
679 (mips_elf_gotplt_index): Likewise. Remove the VxWorks
680 restriction. Use MIPS_ELF_GOT_SIZE to calculate GOT address.
681 (mips_elf_count_got_symbols): Update to use gotplt_union's plist
682 member rather than offset.
683 (mips_elf_calculate_relocation): Handle MIPS16/microMIPS PLT
685 (_bfd_mips_elf_create_dynamic_sections): Don't set PLT sizes
687 (mips_elf_make_plt_record): New function.
688 (_bfd_mips_elf_check_relocs): Update comment. Record occurences
689 of JAL relocations that might need a PLT entry.
690 (_bfd_mips_elf_adjust_dynamic_symbol): Update to use
691 gotplt_union's plist member rather than offset. Set individual
692 PLT entry sizes here. Handle MIPS16/microMIPS PLT entries.
693 Don't set the symbol's value in the symbol table for PLT
694 references here. Don't set the PLT or PLT GOT section sizes
696 (mips_elf_estimate_stub_size): Handle microMIPS stubs.
697 (mips_elf_allocate_lazy_stub): Likewise.
698 (mips_elf_lay_out_lazy_stubs): Likewise. Define a _MIPS_STUBS_
700 (mips_elf_set_plt_sym_value): New function.
701 (_bfd_mips_elf_size_dynamic_sections): Set PLT header size and
702 PLT and PLT GOT section sizes here. Set the symbol values in
703 the symbol table for PLT references here. Handle microMIPS
704 annotation of the _PROCEDURE_LINKAGE_TABLE_ magic symbol.
705 (_bfd_mips_elf_finish_dynamic_symbol): Update to use
706 gotplt_union's plist member rather than offset. Handle
707 MIPS16/microMIPS PLT entries. Handle microMIPS stubs.
708 (_bfd_mips_vxworks_finish_dynamic_symbol): Update to use
709 gotplt_union's plist member rather than offset. Use
710 MIPS_ELF_GOT_SIZE to calculate GOT address.
711 (mips_finish_exec_plt): Handle microMIPS PLT. Return status.
712 (_bfd_mips_elf_finish_dynamic_sections): Handle result from
713 mips_finish_exec_plt.
714 (_bfd_mips_elf_link_hash_table_create): Update to use
715 gotplt_union's plist member rather than offset.
716 (_bfd_mips_elf_get_synthetic_symtab): New function.
721 * hash.c (_bfd_stringtab_add): Copy the string if COPY is true.
725 * Makefile.am (BFD32_BACKENDS, BFD32_BACKENDS_CFILES): Move MIPS ELF
727 (BFD64_BACKENDS, BFD64_BACKENDS_CFILES): ...here.
728 * Makefile.in: Regenerate.
729 * config.bfd: Enclose all MIPS ELF targets in #ifdef BFD64.
730 Set want64 to true for them at the end.
731 * targets.c (_bfd_target_vector): Protect MIPS ELF targets with
736 * elf32-nios2.c (nios2_elf32_finish_dynamic_sections): Don't
737 set sh_entsize for PLT section.
741 * bfd-in.h (bfd_elf64_aarch64_set_options): Add 'extern'.
742 * bfd-in2.h: Re-generated.
743 * elf64-aarch64.c (RELOC_SECTION): Removed.
744 (SWAP_RELOC_IN, SWAP_RELOC_OUT): Ditto.
745 (AARCH64_ELF_OS_ABI_VERSION): Ditto.
746 (elf64_aarch64_link_hash_traverse): Ditto.
747 (elf64_aarch64_size_stubs): Change 'Aarch64' to 'AArch64' in the
752 * configure: Regenerated.
753 * configure.in: Remove aarch64 dependency on elf-ifunc.c.
754 * elf64-aarch64.c: Remove objalloc.h include.
755 (elf64_aarch64_howto_dynrelocs): Remove R_AARCH64_IRELATIVE howto.
756 (struct elf64_aarch64_link_hash_table): Remove ifunc related
757 members. (elf_aarch64_local_htab_hash): Remove function.
758 (elf_aarch64_local_htab_eq): Remove function.
759 (elf_aarch64_get_local_sym_hash): Remove function.
760 (elf64_aarch64_link_hash_table_create): Remove local hash
761 table initialization.
762 (elf64_aarch64_final_link_relocate): Remove sym argument and
763 handling of ifunc symbols.
764 (elf64_aarch64_relocate_section): Don't pass sym argument to
765 elf64_aarch64_final_link_relocate.
766 (elf64_aarch64_gc_sweep_hook): Remove handling of ifunc symbols.
767 (elf64_aarch64_adjust_dynamic_symbol): Likewise.
768 (elf64_aarch64_check_relocs): Likewise.
769 (elf64_aarch64_post_process_headers): Remove call to
771 (elf64_aarch64_is_function_type): New function.
772 (elf64_aarch64_allocate_dynrelocs): Remove handling of ifunc
773 symbols. (elf_aarch64_allocate_local_dynrelocs): Remove function.
774 (elf64_aarch64_size_dynamic_sections): Remove call to
775 elf_aarch64_allocate_local_dynrelocs.
776 (elf64_aarch64_create_small_pltn_entry): Remove info argument.
777 Remove creation of R_AARCH64_IRELATIVE dynamic relocs.
778 (elf64_aarch64_finish_dynamic_symbol): Remove handling of ifunc
779 symbols. (elf_aarch64_finish_local_dynamic_symbol): Remove
780 function. (elf64_aarch64_finish_dynamic_sections): Remove call to
781 elf_aarch64_finish_local_dynamic_symbol.
782 (elf64_aarch64_add_symbol_hook): Remove function.
786 * elf64-aarch64.c (elf64_aarch64_final_link_relocate): Call
787 aarch64_resolve_relocation and bfd_elf_aarch64_put_addend to
788 handle the relocations of R_AARCH64_JUMP26, R_AARCH64_CALL26,
789 R_AARCH64_LD64_GOT_LO12_NC, R_AARCH64_ADR_GOT_PAGE and
790 R_AARCH64_GOT_LD_PREL19.
795 * elf32-arm.c (allocate_dynrelocs_for_symbol): Transform
796 ST_BRANCH_TO_ARM into ST_BRANCH_TO_THUMB if the target only
797 supports thumb instructions.
801 * elf32-rl78.c (rl78_elf_relocate_section): Fix OPsub math.
805 * elf64-aarch64.c (elf_aarch64_get_local_sym_hash): Use
806 ELF64_R_SYM instead of ELF32_R_SYM.
810 * elf32-rl78.c (rl78_elf_finish_dynamic_sections): Onlly run
811 checks if the dynamic sections have been created and relaxation
812 has not been performed.
816 * configure: Regenerate.
817 * configure.in: Build elf-ifunc.o for AArch64.
818 * elf64-aarch64.c: Include objalloc.h.
819 (elf64_aarch64_howto_dynrelocs): Add R_AARCH64_IRELATIVE howto.
820 (struct elf64_aarch64_link_hash_table): Add members for handling
821 R_AARCH64_IRELATIVE relocations.
822 (elf_aarch64_local_htab_hash): New function.
823 (elf_aarch64_local_htab_eq): New function.
824 (elf_aarch64_get_local_sym_hash): New function.
825 (elf64_aarch64_link_hash_table_create): Initialize local STT_GNU_IFUNC
827 (elf64_aarch64_hash_table_free): Free local STT_GNU_IFUNC symbol hash.
828 (elf64_aarch64_final_link_relocate): Add sym argument. Add support
829 for handling STT_GNU_IFUNC symbols.
830 (elf64_aarch64_gc_sweep_hook): Add support for garbage collecting
831 references to STT_GNU_IFUNC symbols.
832 (elf64_aarch64_adjust_dynamic_symbol): Add support for handling
833 STT_GNU_IFUNC symbols.
834 (elf64_aarch64_check_relocs): Add support for handling STT_GNU_IFUNC
835 symbols. Ensure we don't increase plt.refcount from -1 to 0.
836 (elf64_aarch64_post_process_headers): Call _bfd_elf_set_osabi.
837 (elf64_aarch64_is_function_type): Remove function.
838 (elf64_aarch64_allocate_dynrelocs): Call
839 _bfd_elf_allocate_ifunc_dyn_relocs for STT_GNU_IFUNC symbols.
840 (elf_aarch64_allocate_local_dynrelocs): New function.
841 (elf64_aarch64_size_dynamic_sections): Call
842 elf_aarch64_allocate_local_dynrelocs. Initialize next_irelative_index.
843 (elf64_aarch64_create_small_pltn_entry): Add info argument.
844 Add support for creating .iplt entries for STT_GNU_IFUNC symbols.
845 (elf64_aarch64_finish_dynamic_symbol): Add support for handling
846 STT_GNU_IFUNC symbols and .iplt.
847 (elf_aarch64_finish_local_dynamic_symbol): New function.
848 (elf64_aarch64_finish_dynamic_sections): Call
849 elf_aarch64_finish_local_dynamic_symbol.
850 (elf64_aarch64_add_symbol_hook): New function.
854 * syms.c (_bfd_stab_section_find_nearest_line): Add last_str
855 var. Use it with last_stab.
859 * bfd-in2.h: Regenerate.
860 * elf32-mips.c (elf_mips_eh_howto): New.
861 (bfd_elf32_bfd_reloc_type_lookup ): Support BFD_RELOC_MIPS_EH.
862 (bfd_elf32_bfd_reloc_name_lookup): Likewise.
863 (mips_elf32_rtype_to_howto): Support R_MIPS_EH.
864 * elf64-mips.c (elf_mips_eh_howto): New.
865 (bfd_elf64_bfd_reloc_type_lookup): Support BFD_RELOC_MIPS_EH.
866 (bfd_elf64_bfd_reloc_name_lookup): Likewise.
867 (mips_elf64_rtype_to_howto): Support R_MIPS_EH.
868 * libbfd.h: Regenerate.
869 * reloc.c (BFD_RELOC_MIPS_EH): New.
873 * dwarf2.c (struct dwarf2_debug): Add fields for handling
874 alternate debug info source.
875 (dwarf_debug_sections): Add entries for alternate .debug_str and
876 .debug_info sections.
877 (dwarf_debug_section_enum): Likewise.
878 (read_alt_indirect_string): New function. Handles a
879 DW_FORM_GNU_strp_alt attribute.
880 (read_alt_indirect_ref): New function. Handles a
881 DW_FORM_GNU_ref_alt attribute.
882 (read_attribute_value): Process DW_FORM_GNU_ref_alt and
883 DW_FORM_GNU_strp_alt.
884 (find_abstract_instance_name): Handle DW_FORM_GNU_ref_alt
886 (_bfd_dwarf2_cleanup_debug_info): Free alternate debug info
888 * opncls.c (GNU_DEBUGALTLINK): Define.
889 (bfd_get_alt_debug_link_info): New function.
890 (separate_alt_debug_file_exists): New function.
891 (find_separate_debug_file): Add parameters for fetch and check
893 (bfd_follow_gnu_debugaltlink): New function.
894 * bfd-in2.h: Regenerate.
898 * reloc.c (BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE): Rename to ...
899 (BFD_RELOC_AARCH64_TLSDESC_ADR_PAGE21): ... this.
900 (BFD_RELOC_AARCH64_TLSDESC_LD64_PREL19): Rename to ...
901 (BFD_RELOC_AARCH64_TLSDESC_LD_PREL19): ... this.
902 * bfd-in2.h: Regenerate.
903 * libbfd.h: Regenerate.
904 * elf64-aarch64.c (IS_AARCH64_TLSDESC_RELOC): Update to use
906 (elf64_aarch64_tlsdesc_howto_table): Likewise.
907 (elf64_aarch64_reloc_map): Likewise.
908 (aarch64_resolve_relocation): Likewise.
909 (bfd_elf_aarch64_put_addend): Likewise.
910 (aarch64_tls_transition_without_check): Likewise.
911 (aarch64_reloc_got_type): Likewise.
912 (elf64_aarch64_final_link_relocate): Likewise.
913 (elf64_aarch64_tls_relax): Likewise.
914 (elf64_aarch64_relocate_section): Likewise.
915 (elf64_aarch64_gc_sweep_hook): Likewise.
916 (elf64_aarch64_check_relocs): Likewise.
920 * cache.c (BFD_CACHE_MAX_OPEN): Remove define.
921 (max_open_files): New static int initialized to zero.
922 (bfd_cache_max_open): New static function to set and return
924 (bfd_cache_init): Use bfd_cache_max_open.
925 (bfd_open_file): Likewise.
926 * configure.in (AC_CHECK_HEADERS): Add sys/resource.h.
927 (AC_CHECK_FUNCS): Add getrlimit.
928 * configure: Regenerated.
929 * config.in: Likewise.
930 * sysdep.h: Check and include sys/resource.h for getrlimit.
934 * format.c (bfd_check_format_matches): Don't match a target in
935 targ_selvecs if some other target is a better match. If
936 targets implement match priority, fall back to the first of
942 * elfxx-mips.c (_bfd_mips_elf_relocate_section): Warning fix.
947 * srec.c (srec_set_section_contents): Properly convert size
948 and offset to address when octets_per_byte is not unity.
952 * elf32-vax.c (elf_vax_instantiate_got_entries): Only set the
953 refcount member of the gotplt_union when resetting the reference
954 count. Adjust comment.
958 * elf64-aarch64.c (elf64_aarch64_link_hash_entry): Remove
959 relocs_copied member.
960 (elf64_aarch64_link_hash_newfunc): Remove initialization of
961 relocs_copied member.
962 (elf64_aarch64_copy_indirect_symbol): Remove code to copy
963 relocs_copied member.
967 * elf32-vax.c (elf_vax_adjust_dynamic_symbol): Convert K&R
972 * ecoff.c (ecoff_link_check_archive_element): Add initializers for
973 external_ext_size and esize.
977 * coff-rs6000.c (_bfd_xcoff_reloc_type_lookup): Handle BFD_RELOC_16.
978 * coff64-rs6000.c (xcoff64_reloc_type_lookup): Likewise.
982 * elf64-aarch64.c (elf_backend_default_execstack): Define to 0.
986 * coffcode.h (styp_to_sec_flags) [RS6000COFF_C]: Add handling
987 of STYP_EXCEPT, STYP_LOADER and STYP_TYPCHK sections.
991 * bfd.c (_bfd_default_error_handler): Replace use of putc
992 by fputc. Add comment explaining why.
996 * elflink.c (elf_link_add_object_symbols): Don't omit reading
997 of symbols when hashes already exist.
1001 * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Add a
1002 plt_header_size argument for ports where it differs from
1004 * elf-bfd.h: Likewise.
1005 * elf32-i386.c: Pass plt_header_size to
1006 _bfd_elf_allocate_ifunc_dyn_relocs.
1007 * elf64-x86-64.c: Likewise.
1011 * elf-ifunc.c (_bfd_elf_create_ifunc_dyn_reloc): Remove unused
1013 * elf-bfd.h: Likewise.
1017 * elf64-mips.c (elf_mips_gnu_pcrel32): New.
1018 (bfd_elf64_bfd_reloc_type_lookup, bfd_elf64_bfd_reloc_name_lookup,
1019 mips_elf64_rtype_to_howto): Handle R_MIPS_PC32.
1020 * elfn32-mips.c (elf_mips_gnu_pcrel32): New.
1021 (bfd_elfn32_bfd_reloc_type_lookup, bfd_elfn32_bfd_reloc_name_lookup,
1022 mips_elfn32_rtype_to_howto): Handle R_MIPS_PC32.
1026 * elf64-ppc.c (opd_entry_value): Handle case where symbol
1027 hashes are not available.
1031 * elflink.c (elf_link_add_object_symbols): Don't save symbol
1032 hashes around loading as-needed library. Zero them on allocation,
1033 and restore to initial all-zero state if library not needed.
1034 Arrange to reuse hashes if we load library again later.
1038 * elf32-mips.c (elf_mips_copy_howto, elf_mips_jump_slot_howto):
1039 Use _bfd_mips_elf_generic_reloc instead of bfd_elf_generic_reloc.
1040 * elfn32-mips.c: Likewise.
1041 * elf64-mips.c: Likewise.
1045 * archures.c: Add some more MSP430 machine numbers.
1046 * config.bfd (msp430): Define targ_selvecs.
1047 * configure.in: Add bfd_elf32_msp430_ti_vec.
1048 * cpu-msp430.c: Add some more MSP430 machine numbers.
1049 * elf32-msp430.c Add support for MSP430X relocations.
1050 Add support for TI compiler generated relocations.
1051 Add support for sym_diff relocations.
1052 Add support for relaxing out of range short branches into long
1054 Add support for MSP430 attribute section.
1055 * reloc.c: Add MSP430X relocations.
1056 * targets.c: Add bfd_elf32_msp430_ti_vec.
1057 * bfd-in2.h: Regenerate.
1058 * configure: Regenerate.
1059 * libbfd.h: Regenerate.
1063 * config.bfd: Replace alpha*-*-linuxecoff* pattern with
1064 alpha*-*-linux*ecoff*.
1069 * elflink.c (elf_link_add_object_symbols): Initialise 'idx' to
1074 * elflink.c (bfd_elf_record_link_assignment): Dont make
1075 STV_INTERNAL symbols STV_HIDDEN.
1079 * elflink.c (_bfd_elf_gc_mark_extra_sections): Remove mark from
1080 fragmented .debug_line sections associated with unmarked code
1085 * elf32-arm.c (elf32_arm_populate_plt_entry): Call
1086 elf32_arm_add_dynreloc when emitting R_ARM_IRELATIVE relocs.
1090 * elf64-aarch64.c (elf64_aarch64_check_relocs): Move relocation
1091 error check up and add error message.
1095 * elf64-aarch64.c (elf64_aarch64_check_relocs): Remove dead code.
1099 * config.bfd: Add powerpc64le-linux.
1103 * config.bfd (targ_selvecs): Add bfd_elf32_x86_64_vec for
1108 * elf32-arm.c (elf32_arm_allocate_plt_entry): If HTAB->nacl_p,
1109 allocate space for PLT header even if IS_IPLT_ENTRY.
1110 (arm_nacl_put_plt0): New function, broken out of ...
1111 (elf32_arm_finish_dynamic_sections): ... here. Call it.
1112 If HTAB->nacl_p, set up the PLT header in .iplt too.
1113 (elf32_arm_output_arch_local_syms): If HTAB->nacl_p, write
1114 a mapping symbol for the start of .iplt too.
1118 * ecoff.c (_bfd_ecoff_sizeof_headers): Cast the return value of
1120 * elf32-tic6x.c (elf32_tic6x_size_dynamic_sections): Remove unused
1122 * elf32-v850.c (v850_elf_relax_section): Redefine the type of 'i'
1124 * vms-alpha.c (evax_bfd_print_etir): Initialize sec_len.
1129 * elf-bfd.h (RELOC_AGAINST_DISCARDED_SECTION): Don't multiply
1130 sh_size or reloc_count adjustment by count.
1134 * elf64-ppc.c (ppc64_elf_check_relocs): Don't call
1135 create_linkage_sections here..
1136 (ppc64_elf_init_stub_bfd): ..do so here. Return status.
1137 (create_linkage_sections): Move earlier in file.
1138 (ppc64_elf_setup_section_lists): Remove now useless htab->brlt test.
1139 * elf64-ppc.h (ppc64_elf_init_stub_bfd): Update proto.
1144 * compress.c (decompress_contents): Always call inflateEnd, even
1145 when another inflation operation fails.
1149 * elf-ifunc.c: Update copyright year.
1153 * coffcode.h: Added a cast to void when a bfd_set_section_*()
1154 macro's return value is ignored.
1155 * elf32-hppa.c: Likewise.
1156 * elf32-tic6x.c: Likewise.
1157 * mach-o.c: Likewise.
1159 * opncls.c: Likewise.
1160 * peicode.h: Likewise.
1161 * elf32-m32r.c: Check return value of bfd_set_section_*().
1162 * elfnn-ia64.c: Likewise.
1163 * elfxx-mips.c: Likewise.
1164 * vms-alpha.c: Likewise.
1169 * elf-ifunc.c (_bfd_elf_allocate_ifunc_dyn_relocs): Check
1170 regular reference without non-GOT reference when building
1175 * archive.c (_bfd_archive_close_and_cleanup): Clear parent
1176 cache slot for archives.
1180 * mmo.c (mmo_write_chunk): Break out abfd->tdata.mmo_data to new
1181 local variable mmop.
1186 * bfd/elf32-avr.c: Consider all sections to determine if linker
1187 relaxation can safely delete a ret after a call/jmp
1191 * bfd.c (typedef bfd, Error reporting, Miscellaneous): Add
1196 * som.c (bfd_section_from_som_symbol): No longer static.
1197 * som.h (bfd_section_from_som_symbol): Declare.
1201 * elf32-ppc.c (ppc_elf_check_relocs): Use SYMBOLIC_BIND.
1202 * elf64-ppc.c (ppc64_elf_check_relocs, dec_dynrel_count): Likewise.
1206 * elflink.c (elf_link_add_object_symbols): Revert accidental commit.
1210 * bfd.c (bfd_error_type, bfd_errmsgs): Add bfd_error_missing_dso.
1211 * bfd-in2.h: Regenerate.
1212 * elflink.c (elf_link_add_object_symbols): Use new error.
1216 * elf32-v850.c (v850_elf_is_target_special_symbol): New function.
1217 (bfd_elf32_bfd_is_target_special_symbol): Define.
1221 * elf64-aarch64.c (elf64_aarch64_gc_sweep_hook): Use
1222 elf64_aarch64_locals to get local GOT reference counts.
1226 * elf32-rl78.c (GET_RELOC): Assert that there are relocs to get.
1227 (rl78_elf_relax_section): Only fetch the next reloc if there is
1233 * elf-m10300.c (mn10300_elf_check_relocs): Set non_ir_ref for
1234 global symbols referenced by relocs.
1235 * elf32-arm.c (elf32_arm_check_relocs): Likewise.
1236 * elf32-bfin.c (bfin_check_relocs): Likewise.
1237 * elf32-cr16.c (cr16_elf_check_relocs): Likewise.
1238 * elf32-cris.c (cris_elf_check_relocs): Likewise.
1239 * elf32-d10v.c (elf32_d10v_check_relocs): Likewise.
1240 * elf32-dlx.c (elf32_dlx_check_relocs): Likewise.
1241 * elf32-fr30.c (fr30_elf_check_relocs): Likewise.
1242 * elf32-frv.c (elf32_frv_check_relocs): Likewise.
1243 * elf32-hppa.c (elf32_hppa_check_relocs): Likewise.
1244 * elf32-i370.c (i370_elf_check_relocs): Likewise.
1245 * elf32-iq2000.c (iq2000_elf_check_relocs): Likewise.
1246 * elf32-lm32.c (lm32_elf_check_relocs): Likewise.
1247 * elf32-m32c.c (m32c_elf_check_relocs): Likewise.
1248 * elf32-m32r.c (m32r_elf_check_relocs): Likewise.
1249 * elf32-m68hc1x.c (elf32_m68hc11_check_relocs): Likewise.
1250 * elf32-m68k.c (elf_m68k_check_relocs): Likewise.
1251 * elf32-mcore.c (mcore_elf_check_relocs): Likewise.
1252 * elf32-metag.c (elf_metag_check_relocs): Likewise.
1253 * elf32-microblaze.c (microblaze_elf_check_relocs): Likewise.
1254 * elf32-moxie.c (moxie_elf_check_relocs): Likewise.
1255 * elf32-msp430.c (elf32_msp430_check_relocs): Likewise.
1256 * elf32-mt.c (mt_elf_check_relocs): Likewise.
1257 * elf32-nios2.c (nios2_elf32_check_relocs): Likewise.
1258 * elf32-openrisc.c (openrisc_elf_check_relocs): Likewise.
1259 * elf32-ppc.c (ppc_elf_check_relocs): Likewise.
1260 * elf32-rl78.c (rl78_elf_check_relocs): Likewise.
1261 * elf32-s390.c (elf_s390_check_relocs): Likewise.
1262 * elf32-score.c (s3_bfd_score_elf_check_relocs): Likewise.
1263 * elf32-score7.c (s7_bfd_score_elf_check_relocs): Likewise.
1264 * elf32-sh.c (sh_elf_check_relocs): Likewise.
1265 * elf32-tic6x.c (elf32_tic6x_check_relocs): Likewise.
1266 * elf32-tilepro.c (tilepro_elf_check_relocs): Likewise.
1267 * elf32-v850.c (v850_elf_check_relocs): Likewise.
1268 * elf32-vax.c (elf_vax_check_relocs): Likewise.
1269 * elf32-xstormy16.c (xstormy16_elf_check_relocs): Likewise.
1270 * elf32-xtensa.c (elf_xtensa_check_relocs): Likewise.
1271 * elf64-aarch64.c (elf64_aarch64_check_relocs): Likewise.
1272 * elf64-alpha.c (elf64_alpha_check_relocs): Likewise.
1273 * elf64-hppa.c (elf64_hppa_check_relocs): Likewise.
1274 * elf64-ia64-vms.c (elf64_ia64_check_relocs): Likewise.
1275 * elf64-mmix.c (mmix_elf_check_relocs): Likewise.
1276 * elf64-ppc.c (ppc64_elf_check_relocs): Likewise.
1277 * elf64-s390.c (elf_s390_check_relocs): Likewise.
1278 * elf64-sh64.c (sh_elf64_check_relocs): Likewise.
1279 * elfnn-ia64.c (elfNN_ia64_check_relocs): Likewise.
1280 * elfxx-sparc.c (_bfd_sparc_elf_check_relocs): Likewise.
1281 * elfxx-tilegx.c (tilegx_elf_check_relocs): Likewise.
1282 * elfxx-mips.c (_bfd_mips_elf_check_relocs): Likewise. Don't
1283 test indirect/warning links for NULL.
1288 * elf32-i386.c (elf_i386_check_relocs): Set non_ir_ref if a
1289 symbol is referenced by a non-shared object.
1290 * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
1294 * elf32-sh.c (sh_elf_relocate_section): Suppress warnings for
1295 R_SH_REL32 relocations against undefined weak symbols.
1299 * elf64-ppc.c (struct ppc_dyn_relocs): New.
1300 (ppc64_elf_check_relocs): Separate dynrel counts for local syms
1301 into ifunc and non-ifunc.
1302 (dec_dynrel_count): Pass in sym rather than sym_sec. Handle
1303 separate ifunc/non-ifunc dynrel counts.
1304 (allocate_got): Always use reliplt for ifunc.
1305 (allocate_dynrelocs): Likewise.
1306 (ppc64_elf_size_dynamic_sections): Likewise.
1307 (ppc64_elf_layout_multitoc): Likewise.
1308 (ppc64_elf_relocate_section): Likewise.
1312 * elf32-ppc.c (struct ppc_dyn_relocs): New.
1313 (ppc_elf_check_relocs): Separate dynrel counts for local syms
1314 into ifunc and non-ifunc.
1315 (allocate_dynrelocs): Always put ifunc relocs into reliplt.
1316 (ppc_elf_size_dynamic_sections): Likewise.
1317 (ppc_elf_relocate_section): Likewise.
1321 * elf-bfd.h (enum elf_reloc_type_class): Add reloc_class_ifunc.
1322 (struct elf_backend_data <elf_backed_reloc_type_class>): Add
1323 bfd_link_info* and asection* params.
1324 (_bfd_elf_reloc_type_class): Likewise.
1325 * elf.c (_bfd_elf_reloc_type_class): Likewise.
1326 * elflink.c (elf_link_sort_cmp2): Sort first on reloc class.
1327 (elf_link_sort_relocs): Update elf_backed_reloc_type_class call.
1328 * elf32-ppc.c (ppc_elf_reloc_type_class): Return reloc_class_ifunc
1329 for any reliplt reloc. Don't return reloc_class_plt for
1330 R_PPC_REL24 and R_PPC_ADDR24.
1331 * elf64-ppc.c (allocate_got): Formatting.
1332 (ppc64_elf_reloc_type_class): Return reloc_class_ifunc for any
1334 * elf-m10300.c, * elf32-arm.c, * elf32-bfin.c, * elf32-cr16.c,
1335 * elf32-cris.c, * elf32-hppa.c, * elf32-i386.c, * elf32-lm32.c,
1336 * elf32-m32r.c, * elf32-m68k.c, * elf32-metag.c, * elf32-nios2.c,
1337 * elf32-s390.c, * elf32-sh.c, * elf32-sparc.c, * elf32-tilepro.c,
1338 * elf32-vax.c, * elf32-xtensa.c, * elf64-aarch64.c, * elf64-alpha.c,
1339 * elf64-hppa.c, * elf64-ia64-vms.c, * elf64-s390.c, * elf64-sparc.c,
1340 * elf64-x86-64.c, * elfnn-ia64.c, * elfxx-tilegx.c, * elfxx-tilegx.h:
1341 Add extra params to the various reloc_type_class functions.
1345 * elf32-ppc.c (ppc_elf_check_relocs): Set PLT_IFUNC in local got
1346 masks for all local ifunc syms.
1347 (allocate_dynrelocs): Don't use htab->relgot for ifunc.
1348 (ppc_elf_size_dynamic_sections): Likewise.
1349 (ppc_elf_relocate_section): Likewise.
1353 * elf32-arm.c (elf32_arm_final_link_relocate): Avoid emitting a
1354 dynamic reloc for symbols with dynindx == -1.
1355 (allocate_dynrelocs_for_symbol): Avoid allocating space for a
1356 dynamic reloc for symbols with dynindx == -1.
1360 * elf32-arm.c (elf32_arm_final_link_relocate): Avoid emitting a
1361 dynamic reloc for non-default visibility undefined weaks.
1362 (allocate_dynrelocs_for_symbol): Avoid allocating space for a
1363 dynamic reloc for non-default visibility undefined weaks.
1367 * elflink.c (_bfd_elf_add_default_symbol): Preserve section
1368 over _bfd_elf_merge_symbol calls.
1372 * elflink.c (elf_link_add_object_symbols): Add assertion for
1373 common override alignment check code. Formatting.
1377 * elflink.c (_bfd_elf_merge_symbol): Set old_alignment for
1378 usual common symbols as well as for dynamic. Add poldbfd param.
1379 Save old bfd. Adjust callers.
1380 (_bfd_elf_add_default_symbol): Add poldbfd param. Pass "section"
1381 and "value" by value, not pointer. Adjust caller.
1382 (elf_link_add_object_symbols): Combine undef_bfd and old_bfd vars.
1383 Delete code to set same. Use old_bfd and old_alignment from
1384 _bfd_elf_merge_symbol instead. Add default symbol before
1385 alignment and size checks. Wrap overlong lines.
1389 * elflink.c (_bfd_elf_add_default_symbol): Delete "override" param.
1390 (elf_link_add_object_symbols): Don't call _bfd_elf_add_default_symbol
1391 when override is true.
1395 * elflink.c (_bfd_elf_merge_symbol): Use local var holding value
1400 * elflink.c (_bfd_elf_merge_symbol): Don't discard TLS symbols here.
1402 (elf_link_add_object_symbols): Discard TLS symbols for --just-syms
1403 early in symbol loop.
1407 * elf-bfd.h (struct elf_backend_data <merge_symbol>): Update proto.
1408 (_bfd_elf_init_reloc_shdr): Delete.
1409 * elf.c (_bfd_elf_init_reloc_shdr): Make static.
1410 * elf64-x86-64.c (elf_x86_64_merge_symbol): Trim parameters to
1411 just what is needed.
1412 * elflink.c (_bfd_elf_merge_symbol): Update bed->merge_symbol call.
1416 * elf-bfd.h (_bfd_elf_merge_symbol): Delete declaration.
1417 * elflink.c (_bfd_elf_merge_symbol): Make static.
1418 * elf32-sh-symbian.c (sh_symbian_relocate_section): Don't call
1419 _bfd_elf_merge_symbol, call _bfd_generic_link_add_one_symbol.
1424 * elflink.c (elf_link_add_object_symbols): Don't set def_regular
1425 or ref_regular for BFD_PLUGIN owned syms, or have them affect
1426 def_dynamic/ref_dynamic.
1427 (_bfd_elf_fix_symbol_flags): Don't set def_regular for BFD_PLUGIN
1432 * elfxx-sparc.c (_bfd_sparc_elf_merge_private_bfd_data): Set type of
1438 * elf32-h8300.c (elf32_h8_relax_delete_bytes): Fix off by one
1439 errors adjusting relocs and symbols.
1443 * elf32-h8300 (h8_relax_section): Add new relaxation of mov
1444 @(disp:32,ERx) to mov @(disp:16,ERx).
1445 (R_H8_DISP32A16): New reloc.
1446 Comments added and corrected.
1447 * reloc.c (BFD_RELOC_H8_DISP32A16): New reloc.
1448 * bfd-in2.h: Regenerate.
1449 * libbfd.h: Regenerate.
1453 * coffgen.c (coff_real_object_p): Make global.
1454 * peicode.h (coff_real_object_p): Add prototype.
1455 (FILHDR): Defined for COFF_IMAGE_WITH_PE as
1456 external_PEI_IMAGE_hdr structure.
1457 (coff_swap_filehdr_in): Handle variable header-size.
1458 * peXXigen.c (_bfd_XXi_swap_aouthdr_in): Just handle amount
1459 of directory-entiries as specified in pe-header.
1464 * elf32-arm.c (bfd_arm_get_mach_from_attributes): Identify XScale,
1465 iWMMXt and iWMMXt2 processors from attributes.
1469 * elflink.c (_bfd_elf_make_dynamic_reloc_section): Override
1470 sh_type according to is_rela.
1475 * elflink.c (elf_link_add_object_symbols): Exclude weak refs when
1476 considering whether an --as-needed library is needed.
1480 * opncls.c (bfd_get_debug_link_info): Rename from
1481 get_debug_link_info. Export. Update comment.
1482 (find_separate_debug_file): Update.
1483 * bfd-in2.h: Rebuild.
1487 * elf64-aarch64.c (elf_backend_can_gc_sections): Enable gc-section
1489 (elf64_aarch64_gc_sweep_hook): Handle GOT, TLS and PLT related
1494 * elf-bfd.h (elfcore_write_s390_tdb): Add prototype.
1495 * elf.c (elfcore_write_s390_tdb): New function.
1496 (elfcore_write_register_note): Call it.
1497 (elfcore_grok_s390_tdb): New function.
1498 (elfcore_grok_note): Call it.
1502 * elfxx-mips.c (mips_elf_allocate_lazy_stub): Correct data type.
1506 * config.bfd: Add x86_64-*-cygwin to list of supported targets.
1510 * elf32-ppc.c (ppc_elf_relocate_section <R_PPC_PLTREL24>): Adjust
1511 non-zero addends when relocatable, rather than addends >= 32768.
1512 Always zero "addend" before applying relocation.
1516 * archive64.c (bfd_elf64_archive_write_armap): Fix calculation of
1517 file pointer offsets for thin archives.
1521 * elf32-arm.c (elf32_arm_size_dynamic_sections): Don't call
1522 elf32_arm_allocate_dynrelocs for source reloc for non-dynamic link.
1526 * reloc.c (BFD_RELOC_RL78_CODE): Add.
1527 * libbfd.h: Regenerate.
1528 * bfd-in2.h: Regenerate.
1529 * elf32-rl78.c (rl78_elf_relocate_section): Handle weak code
1530 references in compuated relocs.
1534 * config.bfd: Extend moxie-rtems target triplet name support.
1539 * elf64-ia64-vms.c (elf64_vms_link_add_object_symbols): Set
1540 unique_global only for definition.
1541 * elflink.c (_bfd_elf_merge_symbol): Don't set unique_global
1543 (elf_link_add_object_symbols): Set unique_global only
1548 * elf-bfd.h (struct elf_build_id): Extracted from..
1549 (struct elf_build_id_info): ..here. Delete.
1550 (struct output_elf_obj_tdata): New, extracted from..
1551 (struct elf_obj_tdata): ..here. Reorganize for better packing.
1553 (elf_program_header_size): Reference tdata->o.
1554 (elf_seg_map, elf_next_file_pos, elf_eh_frame_hdr, elf_linker,
1555 elf_stack_flags, elf_shstrtab, elf_strtab_sec, elf_shstrtab_sec,
1556 elf_section_syms, elf_num_section_syms, elf_flags_init): Likewise.
1557 * elf.c (bfd_elf_allocate_object): Allocate output_elf_obj_tdata
1558 when opening bfd in any mode that might write.
1559 (_bfd_elf_write_object_contents): Use build_id field in
1560 output_elf_obj_tdata.
1561 (_bfd_elf_close_and_cleanup): Tweak elf_shstrtab test.
1562 (elfobj_grok_gnu_build_id): Adjust for elf_tdata changes.
1566 * elf-bfd.h (struct core_elf_obj_tdata): New.
1567 (struct elf_obj_tdata): Delete core_signal, core_pid, core_lwpid,
1568 core_program, and core_command. Add "core".
1569 * elf.c (bfd_elf_mkcorefile): Allocate "core" struct.
1570 Update all refs to tdata core fields.
1571 * elf32-am33lin.c, * elf32-arm.c, * elf32-cris.c, * elf32-frv.c,
1572 * elf32-hppa.c, * elf32-i386.c, * elf32-m68k.c, * elf32-mips.c,
1573 * elf32-nios2.c, * elf32-ppc.c, * elf32-s390.c, * elf32-score.c,
1574 * elf32-score7.c, * elf32-sh.c, * elf32-sparc.c, * elf32-tilegx.c,
1575 * elf32-tilepro.c, * elf32-xtensa.c, * elf64-aarch64.c,
1576 * elf64-hppa.c, * elf64-mips.c, * elf64-ppc.c, * elf64-tilegx.c,
1577 * elf64-x86-64.c, * elfcore.h, * elfn32-mips.c: Update all refs
1578 to tdata core fields.
1582 * elf-bfd.h (struct elf_obj_tdata): Rename segment_map to seg_map.
1583 Delete num_locals and num_globals.
1584 (elf_num_locals, elf_num_globals): Don't define.
1585 (elf_seg_map, elf_next_file_pos, elf_eh_frame_hdr, elf_linker,
1586 elf_stack_flags, elf_strtab_sec, elf_shstrtab_sec): Define.
1587 * bfd.c, * elf-eh-frame.c, * elf-nacl.c, * elf-vxworks.c, * elf.c,
1588 * elf32-arm.c, * elf32-lm32.c, * elf32-ppc.c, * elf32-rx.c,
1589 * elf32-spu.c, * elf64-hppa.c, * elfcode.h, * elflink.c,
1590 * elfnn-ia64.c, * elfxx-mips.c: Use newly defined elf_obj_tdata
1592 * elf.c (elf_map_symbols): Add pnum_locals param. Return
1593 number of locals syms via new param.
1594 (swap_out_syms): Adjust to suit elf_map_symbols change.
1598 * elfxx-mips.c (_bfd_mips_elf_finish_dynamic_symbol): Also clear
1599 STO_MICROMIPS annotation.
1603 * configure.in: Bump version to 2.23.52.
1604 * elf-bfd.h (struct elf_build_id_info): New.
1605 (struct elf_obj_tdata): Delete after_write_object_contents,
1606 after_write_object_contents_info and build_id_size. Make build_id
1607 a pointer to struct elf_build_id_info.
1608 * elf.c (_bfd_elf_write_object_contents): Style. Update
1609 after_write_ibject_contents invocation.
1610 (elfobj_grok_gnu_build_id): Update for new build_id struct. Don't
1611 allow zero size notes.
1612 * configure: Regenerate.
1616 * elf64-mips.c (micromips_elf64_howto_table_rel): Add
1617 R_MICROMIPS_SCN_DISP and R_MICROMIPS_JALR.
1618 (micromips_elf64_howto_table_rela): Likewise.
1619 (micromips_reloc_map): Add BFD_RELOC_MICROMIPS_JALR.
1620 * elfn32-mips.c (elf_micromips_howto_table_rel): Add
1621 R_MICROMIPS_SCN_DISP and R_MICROMIPS_JALR.
1622 (elf_micromips_howto_table_rela): Likewise.
1623 (micromips_reloc_map): Add BFD_RELOC_MICROMIPS_JALR.
1627 * elfxx-mips.c (MICROMIPS_P): New macro.
1628 (_bfd_mips_elf_symbol_processing): Use it.
1632 * elfxx-mips.c (_bfd_mips_elf_create_dynamic_sections): Clarify
1633 comment on _PROCEDURE_LINKAGE_TABLE_ creation.
1638 * elf-bfd.h (_bfd_elf_strtab_clear_refs): Delete.
1639 (_bfd_elf_strtab_clear_all_refs): Declare.
1640 (_bfd_elf_strtab_resize): Declare.
1641 * elf-strtab.c (_bfd_elf_strtab_clear_refs): Delete.
1642 (_bfd_elf_strtab_clear_all_refs): New function.
1643 (_bfd_elf_strtab_resize): Likewise.
1644 * elflink.c (elf_link_add_object_symbols): Use _bfd_elf_strtab_resize.
1648 * elf-bfd.h (struct elf_obj_tdata): Move find_line_info, local_stubs,
1649 local_call_stubs, elf_data_symbol, elf_text_symbol, elf_data_section,
1650 and elf_text_section to..
1651 * elfxx-mips.c (struct mips_elf_obj_tdata): ..here. Update all refs.
1652 * elf64-alpha.c (struct mips_elf_find_line): Rename to..
1653 (struct alpha_elf_find_line): ..this.
1654 (struct alpha_elf_obj_tdata): Add find_line_info, update refs.
1659 * elflink.c (elf_link_add_object_symbols): Don't add DT_NEEDED
1660 for references from the dummy bfd.
1665 * elflink.c (elf_link_add_object_symbols): Also track weak
1671 * archive.c (_bfd_find_nested_archive): Don't allow a nested
1672 archive pointing to itself.
1673 (_bfd_get_elt_at_filepos): Revert the last 2 changes.
1678 * archive.c (_bfd_get_elt_at_filepos): Prevent an infinite loop
1679 accessing a corrupt nested archive.
1683 * elfxx-mips.c (mips_got_page_ref): New structure.
1684 (mips_got_page_entry): Use a section rather than a (bfd, symndx)
1685 pair to represent the anchor point.
1686 (mips_got_info): Add a got_page_refs field.
1687 (mips_elf_link_hash_table): Add a sym_cache field.
1688 (mips_got_page_ref_hash, mips_got_page_ref_eq): New functions.
1689 (mips_got_page_entry_hash, mips_got_page_entry_eq): Update for
1690 new anchor representation.
1691 (mips_elf_create_got_info): Create got_page_refs rather than
1693 (mips_elf_record_got_page_ref): New function.
1694 (mips_elf_pages_for_range): Move further down file.
1695 (mips_elf_record_got_page_entry): Likewise. Take a got as argument.
1696 Use a section rather than a (bfd, symndx) pair to represent the
1698 (mips_elf_resolve_got_page_ref): New function.
1699 (mips_elf_resolve_final_got_entries): Use it to populate
1701 (_bfd_mips_elf_check_relocs): Call mips_elf_record_got_page_ref
1702 rather than mips_elf_record_got_page_entry. Only nullify h
1704 (mips_elf_lay_out_got): Call mips_elf_resolve_final_got_entries
1709 * elfxx-mips.c (mips_elf_lay_out_got): Count VxWorks GOT relocs
1714 * elfxx-target.h (bfd_elfNN_bfd_link_hash_table_free): Provide
1715 suitable definition when using generic linker hash table.
1719 * elfxx-mips.c (mips_elf_count_got_entries): Delete.
1720 (mips_elf_check_recreate_got, mips_elf_recreate_got): Take a
1721 mips_elf_traverse_got_arg. Count GOT entries.
1722 (mips_elf_resolve_final_got_entries): Take the bfd_link_info
1723 as argument. Update after above changes.
1724 (mips_elf_merge_got, mips_elf_lay_out_got): Don't call
1725 mips_elf_count_got_entries. Update the calls to
1726 mips_elf_resolve_final_got_entries.
1730 * elfxx-mips.c (mips_got_tls_type): New enum.
1731 (mips_got_entry): Add tls_initialized.
1732 (mips_elf_got_entry_hash, mips_elf_got_entry_eq, mips_tls_got_relocs)
1733 (mips_elf_count_got_entry, mips_elf_initialize_tls_index): Remove
1735 (mips_elf_reloc_tls_type, mips_tls_got_entries)
1736 (mips_elf_record_global_got_symbol, mips_elf_initialize_tls_index)
1737 (_bfd_mips_elf_finish_dynamic_symbol): Use GOT_TLS_NONE rather
1739 (mips_elf_initialize_tls_slots): Replace got_offset and tls_type_p
1740 arguments with a GOT entry. Remove GOT_TLS_TYPE masks. Use
1741 tls_initialized rather than GOT_TLS_DONE.
1742 (mips_tls_got_index): Delete.
1743 (mips_elf_local_got_index, mips_elf_global_got_index): Use
1744 mips_elf_initialize_tls_slots rather than mips_tls_got_index.
1745 (mips_elf_record_got_entry): Initialize tls_initialized.
1749 * elfxx-mips.c (mips_got_entry): Remove tls_ldm_offset.
1750 (mips_elf_link_hash_entry): Remove tls_ie_type, tls_gd_type,
1751 tls_ie_got_offset and tls_gd_got_offset.
1752 (mips_elf_link_hash_newfunc): Remove initialization.
1753 (mips_elf_create_got_info): Likewise.
1754 (mips_elf_count_local_got_entries, mips_elf_count_global_tls_entries)
1755 (mips_tls_single_got_index): Delete.
1756 (mips_elf_local_got_index): Always use the GOT entry to track
1758 (mips_elf_global_got_index): Likewise.
1759 (mips_elf_create_local_got_entry): Assert that TLS entries have
1760 already been allocated.
1761 (mips_elf_record_global_got_symbol): Don't initialize
1762 tls_ie_type or tls_gd_type.
1763 (mips_elf_count_got_symbols): Only count reloc-only GOT entries here.
1764 (mips_elf_initialize_tls_index): Allocate a GOT index for every TLS
1766 (mips_elf_lay_out_got): Use mips_elf_count_got_entries to count
1768 (_bfd_mips_elf_finish_dynamic_symbol): Assert that TLS GOT offsets
1769 have been allocated.
1770 (_bfd_mips_elf_copy_indirect_symbol): Remove handling of
1771 tls_ie_type and tls_gd_type.
1775 * elfxx-mips.c (mips_elf_create_local_got_entry): Tidy. Avoid
1776 aliasing violation. Check for htab allocation failures.
1780 * elfxx-mips.c (mips_elf_primary_global_got_index): New function,
1782 (mips_elf_global_got_index): ...here. Reorder arguments so that
1783 the output bfd and info come first.
1784 (mips_elf_calculate_relocation): Update the call to
1785 mips_elf_global_got_index accordingly.
1786 (_bfd_mips_elf_finish_dynamic_symbol): Use
1787 mips_elf_primary_global_got_index rather than
1788 mips_elf_global_got_index.
1789 (_bfd_mips_vxworks_finish_dynamic_symbol): Likewise.
1793 * elfxx-mips.c (mips_got_entry): Update comments.
1794 (mips_elf_multi_got_entry_eq): Rename to...
1795 (mips_elf_got_entry_eq): ...this, deleting the old definition.
1796 (mips_elf_create_got_info): Remove master_got_p argument.
1797 Always use mips_elf_got_entry_eq.
1798 (mips_elf_bfd_got, mips_elf_multi_got, mips_elf_create_got_section):
1799 Update calls accordingly.
1803 * elfxx-mips.c (mips_got_info): Remove bfd2got.
1804 (mips_elf_bfd2got_hash): Delete.
1805 (mips_elf_got_per_bfd_arg): Remove bfd2got.
1806 (mips_elf_replace_bfd_got, mips_elf_count_got_entries): New functions.
1807 (mips_elf_global_got_index, mips_elf_create_local_got_entry): Use
1808 g->next to test for the multigot case. Use mips_elf_bfd_got rather
1809 than mips_elf_got_for_ibfd.
1810 (mips_elf_bfd2got_entry_hash, mips_elf_bfd2got_entry_eq)
1811 (mips_elf_got_for_ibfd, mips_elf_get_got_for_bfd): Delete.
1812 (mips_elf_make_got_per_bfd): Replace with...
1813 (mips_elf_add_got_entry): ...this new function.
1814 (mips_elf_make_got_pages_per_bfd): Replace with...
1815 (mips_elf_add_got_page_entry): ...this new function.
1816 (mips_elf_merge_got_with): Replace bfd2got argument with separate
1817 bfd and GOT arguments. Use mips_elf_add_got_entry and
1818 mips_elf_add_got_page_entry instead of mips_elf_make_got_per_bfd
1819 and mips_elf_make_got_pages_per_bfd. Use mips_elf_replace_bfd_got
1820 to set the BFD's GOT and free the old table.
1821 (mips_elf_merge_got): Replace bfd2got argument with separate
1822 bfd and GOT arguments. Apply mips_elf_resolve_final_got_entries.
1823 Use mips_elf_count_got_entries to count the number of entries in
1824 each GOT. Update the calls to mips_elf_merge_got_with.
1825 (mips_elf_adjust_gp): Use g->next to test for the multigot case.
1826 Use mips_elf_bfd_got rather than mips_elf_got_for_ibfd.
1827 (mips_elf_multi_got): Don't create the bfd2got hash table.
1828 Replace hash table traversal with a walk over the input bfds,
1829 updating the call to mips_elf_merge_got. Use mips_elf_replace_bfd_got
1830 to set the output bfd's GOT.
1831 (mips_elf_lay_out_got): Rename "sub" to "ibfd". Record that all
1832 bfds use the master GOT in the single-GOT case.
1833 (_bfd_mips_elf_finish_dynamic_sections): Use mips_elf_bfd_got
1834 rather than mips_elf_got_for_ibfd.
1838 * elfxx-mips.c (mips_elf_obj_tdata): Add a got field.
1839 (mips_elf_bfd_got, mips_elf_record_got_entry): New functions.
1840 (mips_elf_record_global_got_symbol): Update the hash entry before
1841 adding the mips_got_entry. Use mips_elf_record_got_entry to do
1843 (mips_elf_record_local_got_symbol): Use mips_elf_record_got_entry.
1844 (mips_elf_record_got_page_entry): Record the entry in both the
1845 master and bfd GOTs.
1849 * elfxx-mips.c (mips_elf_recreate_got): Don't change the entry;
1850 create another one if necessary.
1851 (mips_elf_set_gotidx): New function.
1852 (mips_elf_set_global_gotidx): Use it.
1853 (mips_elf_initialize_tls_index): Likewise. Take a
1854 mips_elf_traverse_got_arg as argument.
1855 (mips_elf_lay_out_got): Update use of mips_elf_initialize_tls_index.
1856 (mips_elf_multi_got): Likewise. Cope with error returns from
1857 mips_elf_set_global_gotidx.
1861 * elfxx-mips.c (mips_got_info): Add relocs field.
1862 (mips_elf_set_global_got_offset_arg, mips_elf_count_tls_arg): Replace
1864 (mips_elf_traverse_got_arg): ...this new structure.
1865 (mips_elf_count_local_tls_relocs): Delete.
1866 (mips_elf_count_global_tls_relocs): Likewise.
1867 (mips_elf_count_got_entry): New function.
1868 (mips_elf_count_local_got_entries): Likewise.
1869 (mips_elf_count_global_tls_entries): Take a mips_elf_traverse_got_arg
1870 rather than a mips_elf_count_tls_arg. Count both relocs and entries.
1871 (mips_elf_record_local_got_symbol): Don't count got entries here.
1872 (mips_elf_make_got_per_bfd): Use mips_elf_count_got_entry.
1873 (mips_elf_set_global_got_offset): Split into...
1874 (mips_elf_set_global_got_area, mips_elf_set_global_gotidx): ...these
1875 new functions. Take a mips_elf_traverse_got_arg rather than a
1876 mips_elf_set_global_got_offset_arg. Don't count TLS relocs here.
1877 Use g->relocs to record the number of relocs needed for global GOT
1879 (mips_elf_multi_got): Use mips_elf_traverse_got_arg rather than
1880 mips_elf_set_global_got_offset_arg. Use the relocs field to count
1881 relocations. Update for above function split.
1882 (mips_elf_lay_out_got): Use mips_elf_count_local_got_entries
1883 to count both the number of GOT entries and the number of TLS
1884 relocs required by local entries. Likewise
1885 mips_elf_count_global_tls_entries and global entries.
1886 Remove uses of mips_elf_count_local_tls_relocs and
1887 mips_elf_count_global_tls_relocs.
1891 * elfxx-mips.c (mips_got_entry): Update comment above tls_type entry
1892 to say that each structure represents only one type of TLS reference.
1893 (GOT_TLS_TYPE): New define.
1894 (mips_elf_link_hash_entry): Temporarily split tls_type and
1895 tls_got_offset into two variables each.
1896 (mips_elf_link_hash_newfunc): Update accordingly.
1897 (mips_elf_got_entry_eq, mips_elf_got_entry_hash)
1898 (mips_elf_multi_got_entry_eq): Require the tls_type to be the same.
1899 (mips_elf_reloc_tls_type, mips_tls_got_entries): New functions.
1900 (mips_tls_got_relocs): Use a switch statement.
1901 (mips_elf_count_global_tls_entries): Handle the new hash entry fields.
1902 (mips_elf_initialize_tls_slots): Use a switch statement. Avoid
1903 local "offset" variable.
1904 (mips_tls_got_index): Remove r_type argument and assert. Remove
1905 code that handled entries with two TLS types; always use the
1906 original got_index instead.
1907 (mips_tls_single_got_index): New function.
1908 (mips_elf_local_got_index): Use entry->tls_type to check for
1909 TLS entries. Use mips_tls_single_got_index. Update call to
1911 (mips_elf_global_got_index): Use mips_elf_reloc_tls_type.
1912 Use p->tls_type to check for TLS entries. Update call to
1913 mips_tls_got_index. Use mips_tls_single_got_index.
1914 (mips_elf_create_local_got_entry): Use mips_elf_reloc_tls_type.
1915 Use entry.tls_type to check for TLS entries.
1916 (mips_elf_record_global_got_symbol): Replace tls_flag argument
1917 with r_type argument. Use mips_elf_reloc_tls_type.
1918 Set up the new hash entry fields.
1919 (mips_elf_record_local_got_symbol): Replace tls_flag argument
1920 with r_type argument. Use mips_elf_reloc_tls_type and
1921 mips_tls_got_entries. Remove code that handled entries
1922 with multiple TLS types.
1923 (mips_elf_make_got_per_bfd): Use mips_tls_got_entries.
1924 (mips_elf_initialize_tls_index): Handle new hash entry fields.
1925 Use equality rather than masks when checking for specific TLS types.
1926 Use mips_tls_got_entries. Remove code that handled entries
1927 with multiple TLS types.
1928 (mips_elf_calculate_relocation): Use TLS_RELOC_P instead of
1929 testing the hash table entry.
1930 (_bfd_mips_elf_check_relocs): Update calls to
1931 mips_elf_record_global_got_symbol and mips_elf_record_local_got_symbol.
1932 (_bfd_mips_elf_finish_dynamic_symbol): Don't check h->type.
1933 (_bfd_mips_elf_copy_indirect_symbol): Handle new hash entry fields.
1937 * elfxx-mips.c (mips_elf_multi_got_entry_hash): Rename to...
1938 (mips_elf_got_entry_hash): ...this, deleting the old version.
1939 (mips_elf_create_got_info): Use mips_elf_got_entry_hash for
1944 * elfxx-mips.c (mips_elf_create_got_info): New function.
1945 (mips_elf_get_got_for_bfd, mips_elf_multi_got): Use it.
1946 (mips_elf_create_got_section): Likewise.
1950 * elfxx-mips.c (mips_elf_record_local_got_symbol): Always set
1955 * elfxx-mips.c (mips_elf_multi_got): Simplify size calculation.
1959 * elfxx-mips.c (mips_got_info): Move global_gotsym to...
1960 (mips_elf_link_hash_table): ...here. Update rest of file accordingly.
1964 * elfxx-mips.c (mips_elf_count_global_tls_entries)
1965 (mips_elf_count_global_tls_relocs): Don't count indirect or
1967 (mips_elf_multi_got, mips_elf_lay_out_got): Assert that the right
1968 number of TLS entries were allocated.
1972 * elfxx-mips.c (mips_elf_sort_hash_table_f): Remove asserts.
1976 * elfxx-mips.c (mips_elf_merge_got_with): Only use arg->global_count
1977 if there are TLS relocations.
1981 * elfxx-mips.c (mips_elf_recreate_got): Remove free.
1982 (mips_elf_resolve_final_got_entries): Remove bogus comment.
1986 * elfcode.h (elf_checksum_contents): Free contents.
1987 * elf-bfd.h (_bfd_elf_link_hash_table_free): Declare.
1988 * elflink.c (_bfd_elf_link_hash_table_free): New function.
1989 (elf_final_link_free): New function, extracted from..
1990 (bfd_elf_final_link): ..here. Always call
1991 _bfd_elf_write_section_eh_frame_hdr.
1992 * elfxx-target.h (bfd_elfNN_bfd_link_hash_table_free): Default to
1993 _bfd_elf_link_hash_table_free.
1994 * libbfd-in.h (_bfd_merge_sections_free): Declare.
1995 * libbfd.h: Regenerate.
1996 * merge.c (_bfd_merge_sections_free): New function.
1997 * elf-eh-frame.c (_bfd_elf_write_section_eh_frame_hdr): Free
1999 * elf-m10300.c (elf32_mn10300_link_hash_table_free): Call
2000 _bfd_elf_link_hash_table_free.
2001 * elf32-arm.c (elf32_arm_link_hash_table_free): Likewise.
2002 * elf32-avr.c (elf32_avr_link_hash_table_free): Likewise.
2003 * elf32-hppa.c (elf32_hppa_link_hash_table_free): Likewise.
2004 * elf32-i386.c (elf_i386_link_hash_table_free): Likewise.
2005 * elf32-m68hc1x.c (m68hc11_elf_hash_table_free): Likewise.
2006 * elf32-m68k.c (elf_m68k_link_hash_table_free): Likewise.
2007 * elf32-metag.c (elf_metag_link_hash_table_free): Likewise.
2008 * elf32-xgate.c (xgate_elf_bfd_link_hash_table_free): Likewise.
2009 * elf64-aarch64.c (elf64_aarch64_link_hash_table_free): Likewise.
2010 * elf64-ia64-vms.c (elf64_ia64_hash_table_free): Likewise.
2011 * elf64-ppc.c (ppc64_elf_link_hash_table_free): Likewise.
2012 * elf64-x86-64.c (elf_x86_64_link_hash_table_free): Likewise.
2013 * elfnn-ia64.c (elfNN_ia64_hash_table_free): Likewise.
2014 * elf32-cr16.c (elf32_cr16_link_hash_table_free): Delete.
2015 (bfd_elf32_bfd_link_hash_table_free): Don't define.
2016 * elf32-tic6x.c (elf32_tic6x_link_hash_table_free): Delete.
2017 (bfd_elf32_bfd_link_hash_table_free): Dont' define.
2021 * coff-arm.c (coff_arm_link_hash_table_create): Use bfd_zmalloc.
2022 * coff-h8300.c (h8300_coff_link_hash_table_create): Likewise.
2023 * m68klinux.c (linux_link_hash_table_create): Likewise.
2024 * sparclinux.c (linux_link_hash_table_create): Likewise.
2025 * sunos.c (sunos_link_hash_table_create): Likewise.
2026 * xcofflink.c (_bfd_xcoff_bfd_link_hash_table_create): Likewise.
2027 * elf-m10300.c (elf32_mn10300_link_hash_table_create): Likewise.
2028 * elf32-arm.c (elf32_arm_link_hash_table_create): Likewise.
2029 * elf32-avr.c (elf32_avr_link_hash_table_create): Likewise.
2030 * elf32-cr16.c (elf32_cr16_link_hash_table_create): Likewise.
2031 * elf32-cris.c (elf_cris_link_hash_table_create): Likewise.
2032 * elf32-hppa.c (elf32_hppa_link_hash_table_create): Likewise.
2033 * elf32-i386.c (elf_i386_link_hash_table_create): Likewise.
2034 * elf32-lm32.c (lm32_elf_link_hash_table_create): Likewise.
2035 * elf32-m32r.c (m32r_elf_link_hash_table_create): Likewise.
2036 * elf32-m68hc1x.c (m68hc11_elf_hash_table_create): Likewise.
2037 * elf32-m68k.c (elf_m68k_link_hash_table_create): Likewise.
2038 * elf32-metag.c (elf_metag_link_hash_table_create): Likewise.
2039 * elf32-nios2.c (nios2_elf32_link_hash_table_create): Likewise.
2040 * elf32-s390.c (elf_s390_link_hash_table_create): Likewise.
2041 * elf32-score.c (elf32_score_link_hash_table_create): Likewise.
2042 * elf32-spu.c (spu_elf_link_hash_table_create): Likewise.
2043 * elf32-tic6x.c (elf32_tic6x_link_hash_table_create): Likewise.
2044 * elf32-vax.c (elf_vax_link_hash_table_create): Likewise.
2045 * elf32-xgate.c (xgate_elf_bfd_link_hash_table_create): Likewise.
2046 * elf32-xtensa.c (elf_xtensa_link_hash_table_create): Likewise.
2047 * elf64-aarch64.c (elf64_aarch64_link_hash_table_create): Likewise.
2048 * elf64-s390.c (elf_s390_link_hash_table_create): Likewise.
2049 * elf64-sh64.c (sh64_elf64_link_hash_table_create): Likewise.
2050 * elf64-x86-64.c (elf_x86_64_link_hash_table_create): Likewise.
2051 * elfxx-mips.c (_bfd_mips_elf_link_hash_table_create): Likewise.
2052 * elflink.c (_bfd_elf_link_hash_table_create): Likewise.
2053 (_bfd_elf_link_hash_table_init): Assume zero fill table on entry.
2057 * i386linux.c (linux_link_hash_table_create): Allocate table
2058 with bfd_zmalloc, not bfd_alloc.
2059 * pdp11.c (link_hash_table_create): Allocate table with
2060 bfd_malloc, not bfd_alloc.
2061 * elf32-bfin.c (bfinfdpic_elf_link_hash_table_create): Allocate table
2062 with bfd_zmalloc, not bfd_zalloc.
2063 (bfin_link_hash_table_create): Likewise.
2064 * elf32-frv.c (frvfdpic_elf_link_hash_table_create): Likewise.
2065 * elf64-hppa.c (elf64_hppa_hash_table_create): Likewise.
2070 * elf32-sh.c (sh_elf_link_hash_table_create): Use bfd_zmalloc.
2074 * elf32-metag.c: Use bfd_get_linker_section to get SEC_LINKER_CREATED
2076 (elf_metag_adjust_dynamic_symbol): Don't error on zero size dynbss
2081 * elf64-aarch64.c (elf64_aarch64_grok_prstatus): Change 'size' from
2087 * elf-bfd.h (struct elf_obj_tdata): Add elf_find_function_cache.
2088 * elf.c (elf_find_function): Revert last change. Use new
2089 tdata field rather than static vars for cache.
2094 * elflink.c (elf_link_output_extsym): Set STB_GNU_UNIQUE only if
2095 symbol is defined in regular object.
2100 * elf.c (elf_find_function): Don't cache if symbols change.
2105 * elf-attrs.c (_bfd_elf_copy_obj_attributes): Don't attempt to
2106 copy attributes from or to non-ELF.
2110 * elf32-i386.c (elf_i386_allocate_dynrelocs): Don't clear pc_count
2111 for non-zero TLS symbol.
2112 (elf_i386_relocate_section): Don't resolve size relocation against
2113 non-zero TLS symbol.
2114 * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Don't clear
2115 pc_count for non-zero TLS symbol.
2116 (elf_x86_64_relocate_section): Don't resolve size relocation
2117 against non-zero TLS symbol.
2122 Based on patches from Altera Corporation.
2124 * Makefile.am (ALL_MACHINES): Add cpu-nios2.lo.
2125 (ALL_MACHINES_CFILES): Add cpu-nios2.c.
2126 (BFD_BACKENDS): Add elf32-nios2.lo.
2127 (BFD32_BACKENDS_CFILES): Add elf32-nios2.c.
2128 * Makefile.in: Regenerated.
2129 * configure.in: Add entries for bfd_elf32_bignios2_vec and
2130 bfd_elf32_littlenios2_vec.
2131 * configure: Regenerated.
2132 * config.bfd: Add cases for nios2.
2133 * archures.c (enum bfd_architecture): Add bfd_arch_nios2.
2134 (bfd_mach_nios2): Define.
2135 (bfd_nios2_arch): Declare.
2136 (bfd_archures_list): Add bfd_nios2_arch.
2137 * targets.c (bfd_elf32_bignios2_vec): Declare.
2138 (bfd_elf32_littlenios2_vec): Declare.
2139 (_bfd_target_vector): Add entries for bfd_elf32_bignios2_vec and
2140 bfd_elf32_littlenios2_vec.
2141 * elf-bfd.h (enum elf_target_id): Add NIOS2_ELF_DATA.
2142 * reloc.c (enum bfd_reloc_code_real): Add Nios II relocations.
2143 * bfd-in2.h: Regenerated.
2144 * libbfd.h: Regenerated.
2145 * cpu-nios2.c: New file.
2146 * elf32-nios2.c: New file.
2150 * elf32-arm.c (elf32_arm_final_link_relocate): Only test for
2155 * Makefile.am (SOURCE_HFILES): Add `elf-linux-psinfo.h'.
2156 * Makefile.in: Regenerate.
2161 * Makefile.in (SOURCE_HFILES): Add `elf-linux-psinfo.h'.
2162 * elf-bfd.h (elf_internal_linux_prpsinfo): New structure
2164 (elfcore_write_linux_prpsinfo32, elfcore_write_linux_prpsinfo64)
2165 (elfcore_write_ppc32_linux_prpsinfo32): New declarations.
2166 * elf-linux-psinfo.h: New file.
2167 * elf.c: Include elf-linux-psinfo.h.
2168 (elfcore_write_linux_prpsinfo32, elfcore_write_linux_prpsinfo64):
2170 * elf32-ppc.c: Include `elf-linux-psinfo.h'.
2171 (elf_external_ppc_linux_prpsinfo32): New structure declaration.
2172 (PPC_LINUX_PRPSINFO32_SWAP_FIELDS): New macro.
2173 (elfcore_write_ppc_linux_prpsinfo32): New function.
2177 * mach-o.c (bfd_mach_o_scan_start_address): Do not fail if no
2182 * Makefile.am (BFD64_BACKENDS): Remove elf-nacl.lo.
2183 (BFD64_BACKENDS_CFILES): Remove elf-nacl.c.
2184 * Makefile.in: Regenerate.
2185 * po/SRC-POTFILES.in: Regenerate.
2189 * coff-tic54x.c (SWAP_OUT_RELOC_EXTRA): Delete.
2190 * coff-tic80.c (SWAP_OUT_RELOC_EXTRA): Delete.
2194 * elf64-ppc.c (dec_dynrel_count): Don't error when elf_gc_sweep_symbol
2199 * mach-o.c (bfd_mach_o_scan): Call bfd_mach_o_flatten_sections
2200 earlier. Fix status checking of bfd_mach_o_scan_start_address.
2201 (bfd_mach_o_scan_start_address): Handle LC_MAIN.
2207 * elfxx-sparc.c (_bfd_sparc_elf_gc_mark_hook): Handle implicit
2208 references to __tls_get_addr.
2209 * elf32-tilpro.c (tilepro_elf_gc_mark_hook): Likewise. Correct
2210 vtinherit and vtentry reloc handling too.
2211 * elfxx-tilegx.c (tilegx_elf_gc_mark_hook): As for tilepro.
2215 * elf64-ppc.c (ppc_stub_name): Trim off trailing "+0".
2219 * elf64-ppc.c (build_plt_stub): Correct plt stub branch to glink.
2223 * elf64-ppc.c: Use %T to print symbols names and remove redundant
2224 "relocation" in error messages throughout file.
2225 (ppc64_elf_relocate_section): Remove sibling call error message,
2226 replace with "call lacks nop". Specially report errors for
2227 branches to function entry points via OPD lookup and branches
2228 to stubs. Remove NULL symbol handling now done by %T.
2232 * archive.c (bfd_generic_archive_p): Return target and keep
2233 ardata on partial matches.
2234 * format.c (bfd_check_format_matches): Adjust for above
2235 change. Remove bfd_error_file_ambiguously_recognized dead
2240 * bfd.c (struct bfd_preserve, bfd_preserve_save, bfd_preserve_restore,
2241 bfd_preserve_finish): Move to..
2242 * format.c: ..here, splitting out..
2243 (bfd_reinit): ..this. New function.
2244 (bfd_check_format_matches): Use bfd_preserve_save/restore to
2245 keep bfd state for a match.
2246 * elfcode.h (elf_object_p): Don't use bfd_preserve_save/restore.
2247 * elfcore.h (elf_core_file_p): Likewise.
2248 * mach-o.c (bfd_mach_o_header_p): Likewise.
2249 * pef.c (bfd_pef_object_p, bfd_pef_xlib_object_p): Likewise.
2250 * xsym.c (bfd_sym_object_p): Likewise.
2251 * mmo.c (mmo_scan): Clear abfd->symcount.
2252 * opncls.c (_bfd_new_bfd): Use a smaller section hash table.
2253 * section.c (bfd_section_list_clear): Clear section_htab.count.
2254 * bfd-in2.h: Regenerate.
2258 * elf32-h8300.c (elf32_h8_relax_section): When checking for a
2259 second reloc, make sure that the reloc potentially exists first.
2263 * archures.c: Add bfd_mach_v850e3v5.
2264 * bfd-in2.h: Regenerate.
2265 * cpu-v850.c: Add entries for v850e2v5 and v850e3v5.
2266 * cpu-v850_rh850.c: Likewise.
2267 * elf32-v850.c: Add support for v850e3v5 architecture.
2271 * elf32-metag.c: Error on HIADDR16/LOADDR16 in shared link.
2275 * config.bfd (x86_64-*-rdos*): Remove targ_selvecs.
2279 * elf32-i386.c (elf_i386_allocate_dynrelocs): Clear pc_count for
2280 non-zero TLS symbol.
2281 (elf_i386_relocate_section): Resolve size relocation against
2282 non-zero TLS symbol.
2283 * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Clear pc_count
2284 for non-zero TLS symbol.
2285 (elf_x86_64_relocate_section): Resolve size relocation against
2286 non-zero TLS symbol.
2290 * elflink.c (bfd_elf_size_dynamic_sections): Only add DT_RPATH
2291 when new_dtags is false. Only add DT_RUNPATH when new_dtags is
2296 * elf32-i386.c (elf_i386_check_relocs): Count size relocation as
2297 PC-relative relocation.
2298 * elf64-x86-64.c (elf_x86_64_check_relocs): Count size relocation
2299 as PC-relative relocation.
2303 * elf32-i386.c (elf_i386_check_relocs): Update R_386_SIZE32
2305 (elf_i386_relocate_section): Don't check TLS for R_386_SIZE32.
2307 * elf64-x86-64.c (elf_x86_64_check_relocs): Update R_X86_64_SIZE32
2308 and R_X86_64_SIZE64 check.
2309 (elf_x86_64_relocate_section): Don't check TLS for R_X86_64_SIZE32
2310 nor R_X86_64_SIZE64.
2314 * bfd-in2.h: Regenerated.
2315 * libbfd.h: Likewise.
2317 * elf32-i386.c (elf_howto_table): Fill R_386_SIZE32 entry.
2318 (elf_i386_reloc_type_lookup): Support BFD_RELOC_SIZE32.
2319 (elf_i386_check_relocs): Handle R_386_SIZE32.
2320 (elf_i386_gc_sweep_hook): Likewise.
2321 (elf_i386_relocate_section): Likewise.
2323 * elf64-x86-64.c (x86_64_elf_howto_table): Fill R_X86_64_SIZE32
2324 and R_X86_64_SIZE64 entries.
2325 (x86_64_reloc_map): Add BFD_RELOC_SIZE32 and BFD_RELOC_SIZE64,
2326 (elf_x86_64_rtype_to_howto): Handle R_X86_64_SIZE32 for x32.
2327 (elf_x86_64_reloc_name_lookup): Likewise.
2328 (elf_x86_64_check_relocs): Handle R_X86_64_SIZE32 and
2330 (elf_x86_64_gc_sweep_hook): Likewise.
2331 (elf_x86_64_relocate_section): Likewise.
2333 * reloc.c (bfd_reloc_code_type): Add BFD_RELOC_SIZE32 and
2338 * elf64-x86-64.c (R_X86_64_standard): Replace R_X86_64_IRELATIVE
2339 with R_X86_64_RELATIVE64.
2343 * elf32-msp430.c: Fix spelling typo.
2347 * elf64-ppc.c (ppc64_elf_size_stubs): Default shared libs to
2353 * bfdio.c (struct bfd_iovec <bclose>): Revert 2012-11-06.
2354 (memory_bclose): Likewise. Return 0 on success.
2355 * cache.c (cache_bclose): Likewise.
2356 * opncls.c (opncls_bclose, bfd_close): Likewise.
2357 * vms-lib.c (vms_lib_bclose): Likewise.
2358 * libbfd.h: Regenerate.
2362 * elf-bfd.h (struct elf_link_hash_entry): Delete dynamic_weak.
2363 Add ref_dynamic_nonweak.
2364 * elflink.c (_bfd_elf_mark_dynamic_def_weak): Delete.
2365 (_bfd_elf_merge_symbol): Don't call above function. Move
2366 setting of ref_dynamic_nonweak and dynamic_def earlier. Don't
2368 (elf_link_add_object_symbols): Delete redundant "override" test.
2369 Don't set dynamic_def here.
2370 (elf_link_output_extsym): Update.
2374 * elf32-i386.c (elf_i386_check_relocs): Set bfd errror for
2375 normal and TLS symbol access.
2376 * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
2380 * elf-bfd.h (_bfd_elf_strtab_refcount): Declare.
2381 * elf-strtab.c (_bfd_elf_strtab_refcount): New function.
2382 * elflink.c (elf_add_dt_needed_tag): Use _bfd_elf_strtab_refcount.
2387 * elf-bfd.h (_bfd_elf_strtab_clear_refs): Declare.
2388 (_bfd_elf_strtab_clear_all_refs): Define.
2389 * elf-strtab.c (_bfd_elf_strtab_clear_refs): New function.
2390 (_bfd_elf_strtab_clear_all_refs): Delete.
2391 * elflink.c (elf_link_add_object_symbols): Clear out added
2392 strtab refs. Correct handling of warning common symbols.
2396 * aout0.c: Remove trailing white spaces.
2397 * archive.c: Likewise.
2398 * archures.c: Likewise.
2399 * bfd-in.h: Likewise.
2400 * bfd-in2.h: Likewise.
2401 * coff-alpha.c: Likewise.
2402 * coff-i860.c: Likewise.
2403 * coff-mips.c: Likewise.
2404 * coff-ppc.c: Likewise.
2405 * coff-tic80.c: Likewise.
2406 * coff-x86_64.c: Likewise.
2407 * coff-z80.c: Likewise.
2408 * coffcode.h: Likewise.
2409 * coffgen.c: Likewise.
2410 * cofflink.c: Likewise.
2411 * compress.c: Likewise.
2412 * corefile.c: Likewise.
2413 * cpu-arm.c: Likewise.
2414 * cpu-avr.c: Likewise.
2415 * cpu-bfin.c: Likewise.
2416 * cpu-cr16.c: Likewise.
2417 * cpu-cr16c.c: Likewise.
2418 * cpu-crx.c: Likewise.
2419 * cpu-h8300.c: Likewise.
2420 * cpu-i386.c: Likewise.
2421 * cpu-lm32.c: Likewise.
2422 * cpu-m68k.c: Likewise.
2423 * cpu-moxie.c: Likewise.
2424 * cpu-msp430.c: Likewise.
2425 * cpu-sh.c: Likewise.
2426 * cpu-xc16x.c: Likewise.
2427 * dwarf2.c: Likewise.
2428 * ecofflink.c: Likewise.
2429 * ecoffswap.h: Likewise.
2430 * elf-ifunc.c: Likewise.
2431 * elf-m10300.c: Likewise.
2432 * elf-vxworks.c: Likewise.
2433 * elf32-avr.c: Likewise.
2434 * elf32-avr.h: Likewise.
2435 * elf32-cr16.c: Likewise.
2436 * elf32-cr16c.c: Likewise.
2437 * elf32-cris.c: Likewise.
2438 * elf32-crx.c: Likewise.
2439 * elf32-frv.c: Likewise.
2440 * elf32-hppa.c: Likewise.
2441 * elf32-i860.c: Likewise.
2442 * elf32-ip2k.c: Likewise.
2443 * elf32-iq2000.c: Likewise.
2444 * elf32-m32c.c: Likewise.
2445 * elf32-m68hc1x.c: Likewise.
2446 * elf32-msp430.c: Likewise.
2447 * elf32-mt.c: Likewise.
2448 * elf32-ppc.c: Likewise.
2449 * elf32-rl78.c: Likewise.
2450 * elf32-s390.c: Likewise.
2451 * elf32-score.h: Likewise.
2452 * elf32-sh-symbian.c: Likewise.
2453 * elf32-sh.c: Likewise.
2454 * elf32-spu.c: Likewise.
2455 * elf32-tic6x.c: Likewise.
2456 * elf32-v850.c: Likewise.
2457 * elf32-xc16x.c: Likewise.
2458 * elf32-xtensa.c: Likewise.
2459 * elf64-alpha.c: Likewise.
2460 * elf64-hppa.c: Likewise.
2461 * elf64-ppc.c: Likewise.
2462 * elf64-s390.c: Likewise.
2463 * elfcore.h: Likewise.
2464 * elflink.c: Likewise.
2465 * elfxx-mips.c: Likewise.
2466 * elfxx-sparc.c: Likewise.
2467 * elfxx-tilegx.c: Likewise.
2469 * libcoff.h: Likewise.
2470 * libpei.h: Likewise.
2471 * libxcoff.h: Likewise.
2472 * linker.c: Likewise.
2473 * mach-o-i386.c: Likewise.
2474 * mach-o-target.c: Likewise.
2475 * mach-o.c: Likewise.
2476 * mach-o.h: Likewise.
2478 * opncls.c: Likewise.
2479 * pdp11.c: Likewise.
2480 * pe-x86_64.c: Likewise.
2481 * peXXigen.c: Likewise.
2482 * pef-traceback.h: Likewise.
2483 * pei-x86_64.c: Likewise.
2484 * peicode.h: Likewise.
2485 * plugin.c: Likewise.
2486 * reloc.c: Likewise.
2487 * riscix.c: Likewise.
2488 * section.c: Likewise.
2491 * tekhex.c: Likewise.
2492 * ticoff.h: Likewise.
2493 * vaxbsd.c: Likewise.
2494 * xcofflink.c: Likewise.
2495 * xtensa-isa.c: Likewise.
2499 * Makefile.am: Add Meta.
2500 * Makefile.in: Regenerate.
2501 * archures.c (bfd_mach_metag): New.
2502 * bfd-in2.h: Regenerate.
2503 * config.bfd: Add Meta.
2504 * configure: Regenerate.
2505 * configure.in: Add Meta.
2506 * cpu-metag.c: New file.
2507 * elf-bfd.h: Add Meta.
2508 * elf32-metag.c: New file.
2509 * elf32-metag.h: New file.
2510 * libbfd.h: Regenerate.
2511 * reloc.c: Add Meta relocations.
2512 * targets.c: Add Meta.
2516 * elf-bfd.h (elfcore_write_aarch_tls): Add prototype.
2517 (elfcore_write_aarch_hw_break): Likewise.
2518 (elfcore_write_aarch_hw_watch): Likewise.
2519 * elf.c (elfcore_grok_aarch_tls): New function.
2520 (elfcore_grok_aarch_hw_break): Likewise.
2521 (elfcore_grok_aarch_hw_watch): Likewise.
2522 (elfcore_grok_note): Call the new functions to handle the
2523 corresponding notes.
2524 (elfcore_write_aarch_tls): New function.
2525 (elfcore_write_aarch_hw_break): Likewise.
2526 (elfcore_write_aarch_hw_watch): Likewise.
2527 (elfcore_write_register_note): Call the new functions to handle the
2528 corresponding pseudo sections.
2532 * section.c (_bfd_std_section): Rename from std_section.
2533 (bfd_com_section_ptr, bfd_und_section_ptr, bfd_abs_section_ptr)
2534 (STD_SECTION): Update.
2535 * bfd-in2.h: Rebuild.
2539 * archures.c (bfd_mach_mips5900): Define.
2540 * bfd-in2.h: Regenerate.
2541 * config.bfd: Add mips64-ps2-elf and mips-ps2-elf targets.
2542 * cpu-mips.c: Add support for MIPS r5900.
2543 * elfxx-mips.c: Add support for MIPS r5900 (extension of r4000).
2548 * elflink.c (get_value): Prevent the use of an undefined shift
2549 operation. Add sanity checks.
2553 * config.bfd (cr16*-*-uclinux*): New target support.
2556 For older changes see ChangeLog-2012
2558 Copyright (C) 2013 Free Software Foundation, Inc.
2560 Copying and distribution of this file, with or without modification,
2561 are permitted in any medium without royalty provided the copyright
2562 notice and this notice are preserved.
2568 version-control: never