Home | History | Annotate | Download | only in bfd

Lines Matching full:globals

3364 using_thumb_only (struct elf32_arm_link_hash_table *globals)
3366 int arch = bfd_elf_get_obj_attr_int (globals->obfd, OBJ_ATTR_PROC,
3376 profile = bfd_elf_get_obj_attr_int (globals->obfd, OBJ_ATTR_PROC,
3385 using_thumb2 (struct elf32_arm_link_hash_table *globals)
3387 int arch = bfd_elf_get_obj_attr_int (globals->obfd, OBJ_ATTR_PROC,
3586 arch_has_arm_nop (struct elf32_arm_link_hash_table *globals)
3588 const int arch = bfd_elf_get_obj_attr_int (globals->obfd, OBJ_ATTR_PROC,
3597 arch_has_thumb2_nop (struct elf32_arm_link_hash_table *globals)
3599 globals->obfd, OBJ_ATTR_PROC,
3643 struct elf32_arm_link_hash_table * globals;
3655 globals = elf32_arm_hash_table (info);
3656 if (globals == NULL)
3659 thumb_only = using_thumb_only (globals);
3661 thumb2 = using_thumb2 (globals);
3688 splt = globals->root.iplt;
3690 splt = globals->root.splt;
3739 || r_type == R_ARM_THM_TLS_CALL) && !globals->use_blx)
3749 stub_type = (info->shared | globals->pic_veneer)
3751 ? ((globals->use_blx
3762 : ((globals->use_blx
3771 stub_type = (info->shared | globals->pic_veneer)
3792 (info->shared | globals->pic_veneer)
3796 ? (globals->use_blx ? arm_stub_long_branch_any_tls_pic
3798 : ((globals->use_blx && r_type == R_ARM_THM_CALL)
3805 : ((globals->use_blx && r_type == R_ARM_THM_CALL)
3842 || (r_type == R_ARM_CALL && !globals->use_blx)
3846 stub_type = (info->shared | globals->pic_veneer)
3848 ? ((globals->use_blx)
3855 : ((globals->use_blx)
3869 (info->shared | globals->pic_veneer)
3874 : (globals->nacl_p
3878 : (globals->nacl_p
4165 struct elf32_arm_link_hash_table *globals;
4183 globals = elf32_arm_hash_table (info);
4184 if (globals == NULL)
4189 if ((globals->fix_cortex_a8 < 0)
5236 struct elf32_arm_link_hash_table *globals =
5243 if (globals != NULL
5244 && globals->root.splt != NULL
5248 sym_sec = globals->root.splt;
5267 struct elf32_arm_link_hash_table *globals =
5270 if (globals != NULL
5271 && globals->root.splt != NULL
5275 sym_sec = globals->root.splt;
5759 struct elf32_arm_link_hash_table * globals;
5761 globals = elf32_arm_hash_table (info);
5762 BFD_ASSERT (globals != NULL);
5764 arm_allocate_glue_section_space (globals->bfd_of_glue_owner,
5765 globals->arm_glue_size,
5768 arm_allocate_glue_section_space (globals->bfd_of_glue_owner,
5769 globals->thumb_glue_size,
5772 arm_allocate_glue_section_space (globals->bfd_of_glue_owner,
5773 globals->vfp11_erratum_glue_size,
5776 arm_allocate_glue_section_space (globals->bfd_of_glue_owner,
5777 globals->bx_glue_size,
5795 struct elf32_arm_link_hash_table * globals;
5799 globals = elf32_arm_hash_table (link_info);
5800 BFD_ASSERT (globals != NULL);
5801 BFD_ASSERT (globals->bfd_of_glue_owner != NULL);
5804 (globals->bfd_of_glue_owner, ARM2THUMB_GLUE_SECTION_NAME);
5816 (&(globals)->root, tmp_name, FALSE, FALSE, TRUE);
5830 val = globals->arm_glue_size + 1;
5831 _bfd_generic_link_add_one_symbol (link_info, globals->bfd_of_glue_owner,
5841 if (link_info->shared || globals->root.is_relocatable_executable
5842 || globals->pic_veneer)
5844 else if (globals->use_blx)
5850 globals->arm_glue_size += size;
5861 struct elf32_arm_link_hash_table *globals;
5871 globals = elf32_arm_hash_table (link_info);
5872 BFD_ASSERT (globals != NULL);
5873 BFD_ASSERT (globals->bfd_of_glue_owner != NULL);
5876 if (globals->bx_glue_offset[reg])
5880 (globals->bfd_of_glue_owner, ARM_BX_GLUE_SECTION_NAME);
5893 (&(globals)->root, tmp_name, FALSE, FALSE, FALSE);
5898 val = globals->bx_glue_size;
5899 _bfd_generic_link_add_one_symbol (link_info, globals->bfd_of_glue_owner,
5908 globals->bx_glue_offset[reg] = globals->bx_glue_size | 2;
5909 globals->bx_glue_size += ARM_BX_VENEER_SIZE;
6129 struct elf32_arm_link_hash_table *globals;
6139 globals = elf32_arm_hash_table (info);
6140 BFD_ASSERT (globals != NULL);
6142 if (globals->bfd_of_glue_owner != NULL)
6146 globals->bfd_of_glue_owner = abfd;
6152 check_use_blx (struct elf32_arm_link_hash_table *globals)
6156 cpu_arch = bfd_elf_get_obj_attr_int (globals->obfd, OBJ_ATTR_PROC,
6159 if (globals->fix_arm1176)
6162 globals->use_blx = 1;
6167 globals->use_blx = 1;
6181 struct elf32_arm_link_hash_table *globals;
6190 globals = elf32_arm_hash_table (link_info);
6191 BFD_ASSERT (globals != NULL);
6193 check_use_blx (globals);
6195 if (globals->byteswap_code && !bfd_big_endian (abfd))
6205 if (globals->bfd_of_glue_owner == NULL)
6244 && (r_type != R_ARM_V4BX || globals->fix_v4bx < 2))
6289 if (globals->root.splt != NULL && h->plt.offset != (bfd_vma) -1)
6388 struct elf32_arm_link_hash_table *globals = elf32_arm_hash_table (link_info);
6391 if (globals == NULL)
6394 if (globals->fix_cortex_a8 == -1)
6400 globals->fix_cortex_a8 = 1;
6402 globals->fix_cortex_a8 = 0;
6410 struct elf32_arm_link_hash_table *globals = elf32_arm_hash_table (link_info);
6413 if (globals == NULL)
6418 switch (globals->vfp11_fix)
6422 globals->vfp11_fix = BFD_ARM_VFP11_FIX_NONE;
6431 else if (globals->vfp11_fix == BFD_ARM_VFP11_FIX_DEFAULT)
6435 globals->vfp11_fix = BFD_ARM_VFP11_FIX_NONE;
6715 struct elf32_arm_link_hash_table *globals = elf32_arm_hash_table (link_info);
6716 int use_vector = (globals->vfp11_fix == BFD_ARM_VFP11_FIX_VECTOR);
6718 if (globals == NULL)
6757 BFD_ASSERT (globals->vfp11_fix != BFD_ARM_VFP11_FIX_DEFAULT);
6759 if (globals->vfp11_fix == BFD_ARM_VFP11_FIX_NONE)
6932 struct elf32_arm_link_hash_table *globals;
6942 globals = elf32_arm_hash_table (link_info);
6943 if (globals == NULL)
6968 (&(globals)->root, tmp_name, FALSE, FALSE, TRUE);
6988 (&(globals)->root, tmp_name, FALSE, FALSE, TRUE);
7025 struct elf32_arm_link_hash_table *globals;
7027 globals = elf32_arm_hash_table (link_info);
7028 if (globals == NULL)
7031 globals->target1_is_rel = target1_is_rel;
7033 globals->target2_reloc = R_ARM_REL32;
7035 globals->target2_reloc = R_ARM_ABS32;
7037 globals->target2_reloc = R_ARM_GOT_PREL;
7043 globals->fix_v4bx = fix_v4bx;
7044 globals->use_blx |= use_blx;
7045 globals->vfp11_fix = vfp11_fix;
7046 globals->pic_veneer = pic_veneer;
7047 globals->fix_cortex_a8 = fix_cortex_a8;
7048 globals->fix_arm1176 = fix_arm1176;
7099 struct elf32_arm_link_hash_table * globals;
7105 globals = elf32_arm_hash_table (info);
7106 BFD_ASSERT (globals != NULL);
7107 BFD_ASSERT (globals->bfd_of_glue_owner != NULL);
7111 s = bfd_get_linker_section (globals->bfd_of_glue_owner,
7135 put_thumb_insn (globals, output_bfd, (bfd_vma) t2a1_bx_pc_insn,
7138 put_thumb_insn (globals, output_bfd, (bfd_vma) t2a2_noop_insn,
7157 put_arm_insn (globals, output_bfd,
7162 BFD_ASSERT (my_offset <= globals->thumb_glue_size);
7196 struct elf32_arm_link_hash_table * globals;
7202 globals = elf32_arm_hash_table (info);
7203 BFD_ASSERT (globals != NULL);
7204 BFD_ASSERT (globals->bfd_of_glue_owner != NULL);
7223 if (info->shared || globals->root.is_relocatable_executable
7224 || globals->pic_veneer)
7230 put_arm_insn (globals, output_bfd, (bfd_vma) a2t1p_ldr_insn,
7232 put_arm_insn (globals, output_bfd, (bfd_vma) a2t2p_add_pc_insn,
7234 put_arm_insn (globals, output_bfd, (bfd_vma) a2t3p_bx_r12_insn,
7245 else if (globals->use_blx)
7247 put_arm_insn (globals, output_bfd, (bfd_vma) a2t1v5_ldr_insn,
7256 put_arm_insn (globals, output_bfd, (bfd_vma) a2t1_ldr_insn,
7259 put_arm_insn (globals, output_bfd, (bfd_vma) a2t2_bx_r12_insn,
7270 BFD_ASSERT (my_offset <= globals->arm_glue_size);
7295 struct elf32_arm_link_hash_table * globals;
7297 globals = elf32_arm_hash_table (info);
7298 BFD_ASSERT (globals != NULL);
7299 BFD_ASSERT (globals->bfd_of_glue_owner != NULL);
7301 s = bfd_get_linker_section (globals->bfd_of_glue_owner,
7341 struct elf32_arm_link_hash_table * globals;
7351 globals = elf32_arm_hash_table (info);
7352 BFD_ASSERT (globals != NULL);
7353 BFD_ASSERT (globals->bfd_of_glue_owner != NULL);
7355 s = bfd_get_linker_section (globals->bfd_of_glue_owner,
7370 globals->obfd, sec, val, s,
7384 struct elf32_arm_link_hash_table *globals;
7386 globals = elf32_arm_hash_table (info);
7387 BFD_ASSERT (globals != NULL);
7388 BFD_ASSERT (globals->bfd_of_glue_owner != NULL);
7390 s = bfd_get_linker_section (globals->bfd_of_glue_owner,
7396 BFD_ASSERT (globals->bx_glue_offset[reg] & 2);
7398 glue_addr = globals->bx_glue_offset[reg] & ~(bfd_vma)3;
7400 if ((globals->bx_glue_offset[reg] & 1) == 0)
7403 bfd_put_32 (globals->obfd, armbx1_tst_insn + (reg << 16), p);
7404 bfd_put_32 (globals->obfd, armbx2_moveq_insn + reg, p + 4);
7405 bfd_put_32 (globals->obfd, armbx3_bx_insn + reg, p + 8);
7406 globals->bx_glue_offset[reg] |= 1;
7417 struct elf32_arm_link_hash_table * globals;
7423 globals = elf32_arm_hash_table (link_info);
7424 if (globals == NULL)
7429 if (globals->use_blx)
7432 elf_link_hash_traverse (&globals->root, elf32_arm_to_thumb_export_stub,
7904 arm_real_reloc_type (struct elf32_arm_link_hash_table * globals,
7910 if (globals->target1_is_rel)
7916 return globals->target2_reloc;
7979 elf32_arm_tls_relax (struct elf32_arm_link_hash_table *globals,
8097 else if (arch_has_thumb2_nop (globals))
8212 struct elf32_arm_link_hash_table * globals;
8220 globals = elf32_arm_hash_table (info);
8221 if (globals == NULL)
8228 r_type = arm_real_reloc_type (globals, r_type);
8250 sgot = globals->root.sgot;
8254 if (globals->root.dynamic_sections_created)
8255 srelgot = globals->root.srelgot;
8261 if (globals->use_rel)
8279 if (using_thumb_only (globals)
8304 splt = globals->root.iplt;
8337 splt = globals->root.splt;
8355 if (!globals->vxworks_p)
8398 if ((info->shared || globals->root.is_relocatable_executable)
8400 && !(globals->vxworks_p
8405 && !(input_bfd == globals->stub_bfd
8421 if (sreloc == NULL && globals->root.dynamic_sections_created)
8424 ! globals->use_rel);
8458 if (globals->symbian_p)
8505 if (globals->use_rel)
8584 rel, globals,
8635 if (globals->use_rel)
8655 if (arch_has_arm_nop (globals))
8744 if (globals->use_rel)
8759 if (globals->use_rel)
8772 if (globals->use_rel)
8799 if (globals->use_rel)
8839 if (globals->use_rel)
8872 if (globals->use_rel)
8914 const int thumb2 = using_thumb2 (globals);
8923 if (arch_has_thumb2_nop (globals))
8938 if (globals->use_rel)
8974 if (globals->use_blx && r_type == R_ARM_THM_CALL)
8992 && globals->use_blx
9022 rel, globals,
9035 if (globals->use_blx && (r_type == R_ARM_THM_CALL))
9052 if (globals->use_blx
9054 && ! using_thumb_only (globals))
9064 if (! using_thumb_only (globals))
9143 if (globals->use_rel)
9181 rel, globals,
9233 if (globals->use_rel)
9282 if (globals->use_rel)
9357 sgot = globals->root.igotplt;
9371 if (globals->root.dynamic_sections_created
9385 if (globals->root.dynamic_sections_created)
9410 && (outrel.r_info == 0 || globals->use_rel))
9444 if (globals->use_rel)
9488 off = globals->tls_ldm_got.offset;
9508 if (globals->use_rel)
9517 globals->tls_ldm_got.offset |= 1;
9545 dyn = globals->root.dynamic_sections_created;
9601 BFD_ASSERT (globals->sgotplt_jump_table_size + offplt + 8
9602 <= globals->root.sgotplt->size);
9605 outrel.r_offset = (globals->root.sgotplt->output_section->vma
9606 + globals->root.sgotplt->output_offset
9608 + globals->sgotplt_jump_table_size);
9611 sreloc = globals->root.srelplt;
9613 loc += globals->next_tls_desc_index++ * RELOC_SIZE (globals);
9614 BFD_ASSERT (loc + RELOC_SIZE (globals)
9617 SWAP_RELOC_OUT (globals) (output_bfd, &outrel, loc);
9619 /* For globals, the first word in the relocation gets
9627 globals->root.sgotplt->contents + offplt
9628 + globals->sgotplt_jump_table_size);
9632 globals->root.sgotplt->contents + offplt
9633 + globals->sgotplt_jump_table_size + 4);
9645 if (globals->use_rel)
9661 if (globals->use_rel)
9698 if (globals->use_rel)
9732 globals->tls_trampoline, globals->root.splt,
9739 (input_section, globals->root.splt, 0, rel,
9740 globals, stub_type);
9746 offset = (globals->root.splt->output_section->vma
9747 + globals->root.splt->output_offset
9748 + globals->tls_trampoline);
9760 value = inst | (globals->use_blx ? 0xfa000000 : 0xeb000000);
9856 value += ((globals->root.sgotplt->output_section->vma
9857 + globals->root.sgotplt->output_offset + off)
9861 + globals->sgotplt_jump_table_size);
9864 value = ((globals->root.sgot->output_section->vma
9865 + globals->root.sgot->output_offset + off)
9891 if (globals->fix_v4bx)
9898 if (globals->fix_v4bx == 2 && (insn & 0xf) != 0xf)
9934 if (globals->use_rel)
9981 if (globals->use_rel)
10066 if (globals->use_rel)
10195 if (globals->use_rel)
10279 if (globals->use_rel)
10363 if (globals->use_rel)
10524 struct elf32_arm_link_hash_table * globals;
10526 globals = elf32_arm_hash_table (info);
10527 if (globals == NULL)
10552 r_type = arm_real_reloc_type (globals, r_type);
10591 if (globals->use_rel)
10711 if (globals->use_rel)
10759 r = elf32_arm_tls_relax (globals, input_bfd, input_section,
11119 struct elf32_arm_link_hash_table *globals = elf32_arm_hash_table (info);
11122 if (globals == NULL)
11148 if (globals->bfd_of_glue_owner != NULL)
11151 globals->bfd_of_glue_owner,
11156 globals->bfd_of_glue_owner,
11161 globals->bfd_of_glue_owner,
11166 globals->bfd_of_glue_owner,
12443 struct elf32_arm_link_hash_table * globals;
12448 globals = elf32_arm_hash_table (info);
12449 if (globals == NULL)
12458 check_use_blx (globals);
12488 r_type = arm_real_reloc_type (globals, r_type);
12508 globals->tls_ldm_got.refcount -= 1;
12524 if (!globals->vxworks_p)
12543 if ((info->shared || globals->root.is_relocatable_executable)
12602 isym = bfd_sym_from_r_symndx (&globals->sym_cache,
13227 struct elf32_arm_link_hash_table *globals;
13229 globals = elf32_arm_hash_table (info);
13230 if (globals == NULL)
13312 if (info->shared || globals->root.is_relocatable_executable)
13335 srel = bfd_get_linker_section (dynobj, RELOC_SECTION (globals, ".bss"));
13741 struct elf32_arm_link_hash_table *globals;
13743 globals = elf32_arm_hash_table (info);
13744 if (globals == NULL)
13747 globals->byteswap_code = byteswap_code;
14699 struct elf32_arm_link_hash_table *globals;
14711 globals = elf32_arm_hash_table (link_info);
14712 if (globals != NULL && globals->byteswap_code)
15528 struct elf32_arm_link_hash_table *globals = elf32_arm_hash_table (link_info);
15537 if (globals == NULL)
15714 if (globals->fix_cortex_a8)
15721 bfd_hash_traverse (&globals->stub_hash_table, make_branch_to_a8_stub,
15728 if (globals->byteswap_code)