Lines Matching defs:finfo

655   struct coff_final_link_info finfo;
676 finfo.info = info;
677 finfo.output_bfd = abfd;
678 finfo.strtab = NULL;
679 finfo.section_info = NULL;
680 finfo.last_file_index = -1;
681 finfo.last_bf_index = -1;
682 finfo.internal_syms = NULL;
683 finfo.sec_ptrs = NULL;
684 finfo.sym_indices = NULL;
685 finfo.outsyms = NULL;
686 finfo.linenos = NULL;
687 finfo.contents = NULL;
688 finfo.external_relocs = NULL;
689 finfo.internal_relocs = NULL;
690 finfo.global_to_static = FALSE;
695 finfo.strtab = _bfd_stringtab_init ();
696 if (finfo.strtab == NULL)
699 if (! coff_debug_merge_hash_table_init (&finfo.debug_merge))
779 if (_bfd_stringtab_add (finfo.strtab, o->name, FALSE, FALSE)
796 finfo.section_info = (struct coff_link_section_info *) bfd_malloc (amt);
797 if (finfo.section_info == NULL)
801 finfo.section_info[i].relocs = NULL;
802 finfo.section_info[i].rel_hashes = NULL;
839 finfo.section_info[o->target_index].relocs =
843 finfo.section_info[o->target_index].rel_hashes =
845 if (finfo.section_info[o->target_index].relocs == NULL
846 || finfo.section_info[o->target_index].rel_hashes == NULL)
877 finfo.internal_syms = (struct internal_syment *) bfd_malloc (amt);
879 finfo.sec_ptrs = (asection **) bfd_malloc (amt);
881 finfo.sym_indices = (long int *) bfd_malloc (amt);
882 finfo.outsyms = (bfd_byte *) bfd_malloc ((max_sym_count + 1) * symesz);
884 finfo.linenos = (bfd_byte *) bfd_malloc (amt);
885 finfo.contents = (bfd_byte *) bfd_malloc (max_contents_size);
887 finfo.external_relocs = (bfd_byte *) bfd_malloc (amt);
891 finfo.internal_relocs = (struct internal_reloc *) bfd_malloc (amt);
893 if ((finfo.internal_syms == NULL && max_sym_count > 0)
894 || (finfo.sec_ptrs == NULL && max_sym_count > 0)
895 || (finfo.sym_indices == NULL && max_sym_count > 0)
896 || finfo.outsyms == NULL
897 || (finfo.linenos == NULL && max_lineno_count > 0)
898 || (finfo.contents == NULL && max_contents_size > 0)
899 || (finfo.external_relocs == NULL && max_reloc_count > 0)
901 && finfo.internal_relocs == NULL
926 if (! bfd_coff_link_output_has_begun (sub, & finfo))
928 if (! _bfd_coff_link_input_bfd (&finfo, sub))
936 if (! _bfd_coff_reloc_link_order (abfd, &finfo, o, p))
947 if (! bfd_coff_final_link_postscript (abfd, & finfo))
952 coff_debug_merge_hash_table_free (&finfo.debug_merge);
955 if (finfo.internal_syms != NULL)
957 free (finfo.internal_syms);
958 finfo.internal_syms = NULL;
960 if (finfo.sec_ptrs != NULL)
962 free (finfo.sec_ptrs);
963 finfo.sec_ptrs = NULL;
965 if (finfo.sym_indices != NULL)
967 free (finfo.sym_indices);
968 finfo.sym_indices = NULL;
970 if (finfo.linenos != NULL)
972 free (finfo.linenos);
973 finfo.linenos = NULL;
975 if (finfo.contents != NULL)
977 free (finfo.contents);
978 finfo.contents = NULL;
980 if (finfo.external_relocs != NULL)
982 free (finfo.external_relocs);
983 finfo.external_relocs = NULL;
985 if (finfo.internal_relocs != NULL)
987 free (finfo.internal_relocs);
988 finfo.internal_relocs = NULL;
994 if (finfo.last_file_index != -1
995 && (unsigned int) finfo.last_file.n_value != obj_raw_syment_count (abfd))
999 finfo.last_file.n_value = obj_raw_syment_count (abfd);
1000 bfd_coff_swap_sym_out (abfd, &finfo.last_file,
1001 finfo.outsyms);
1003 pos = obj_sym_filepos (abfd) + finfo.last_file_index * symesz;
1005 || bfd_bwrite (finfo.outsyms, symesz, abfd) != symesz)
1014 finfo.failed = FALSE;
1016 _bfd_coff_write_task_globals, &finfo);
1017 if (finfo.failed)
1022 finfo.failed = FALSE;
1024 _bfd_coff_write_global_sym, &finfo);
1025 if (finfo.failed)
1029 if (finfo.outsyms != NULL)
1031 free (finfo.outsyms);
1032 finfo.outsyms = NULL;
1055 irel = finfo.section_info[o->target_index].relocs;
1057 rel_hash = finfo.section_info[o->target_index].rel_hashes;
1098 if (finfo.section_info != NULL)
1104 if (finfo.section_info[i].relocs != NULL)
1105 free (finfo.section_info[i].relocs);
1106 if (finfo.section_info[i].rel_hashes != NULL)
1107 free (finfo.section_info[i].rel_hashes);
1109 free (finfo.section_info);
1110 finfo.section_info = NULL;
1131 _bfd_stringtab_size (finfo.strtab) + STRING_SIZE_SIZE,
1141 if (! _bfd_stringtab_emit (abfd, finfo.strtab))
1147 _bfd_stringtab_free (finfo.strtab);
1157 coff_debug_merge_hash_table_free (&finfo.debug_merge);
1158 if (finfo.strtab != NULL)
1159 _bfd_stringtab_free (finfo.strtab);
1160 if (finfo.section_info != NULL)
1166 if (finfo.section_info[i].relocs != NULL)
1167 free (finfo.section_info[i].relocs);
1168 if (finfo.section_info[i].rel_hashes != NULL)
1169 free (finfo.section_info[i].rel_hashes);
1171 free (finfo.section_info);
1173 if (finfo.internal_syms != NULL)
1174 free (finfo.internal_syms);
1175 if (finfo.sec_ptrs != NULL)
1176 free (finfo.sec_ptrs);
1177 if (finfo.sym_indices != NULL)
1178 free (finfo.sym_indices);
1179 if (finfo.outsyms != NULL)
1180 free (finfo.outsyms);
1181 if (finfo.linenos != NULL)
1182 free (finfo.linenos);
1183 if (finfo.contents != NULL)
1184 free (finfo.contents);
1185 if (finfo.external_relocs != NULL)
1186 free (finfo.external_relocs);
1187 if (finfo.internal_relocs != NULL)
1188 free (finfo.internal_relocs);
1330 mark_relocs (struct coff_final_link_info *finfo, bfd *input_bfd)
1352 finfo->external_relocs,
1353 finfo->info->relocatable,
1354 (finfo->info->relocatable
1355 ? (finfo->section_info[ a->output_section->target_index ].relocs + a->output_section->reloc_count)
1356 : finfo->internal_relocs)
1370 finfo->sym_indices[ irel->r_symndx ] = -1;
1378 _bfd_coff_link_input_bfd (struct coff_final_link_info *finfo, bfd *input_bfd)
1404 output_bfd = finfo->output_bfd;
1413 if (! finfo->info->keep_memory)
1424 isymp = finfo->internal_syms;
1425 secpp = finfo->sec_ptrs;
1426 indexp = finfo->sym_indices;
1428 outsym = finfo->outsyms;
1431 && ! process_embedded_commands (output_bfd, finfo->info, input_bfd))
1437 if (( finfo->info->strip != strip_none
1438 || finfo->info->discard != discard_none)
1439 && finfo->info->relocatable)
1444 mark_relocs (finfo, input_bfd);
1484 if ((finfo->info->strip != strip_none
1485 || finfo->info->discard != discard_none)
1486 && finfo->info->relocatable)
1498 if (finfo->info->strip == strip_all && ! dont_skip_symbol)
1528 if (finfo->info->discard == discard_all && ! dont_skip_symbol)
1553 && finfo->info->strip == strip_debugger
1571 && (finfo->info->strip == strip_some
1572 || finfo->info->discard == discard_l))
1582 && ((finfo->info->strip == strip_some
1583 && (bfd_hash_lookup (finfo->info->keep_hash, name, FALSE,
1586 && finfo->info->discard == discard_l
1594 && (finfo->output_bfd->flags & BFD_TRADITIONAL_FORMAT) == 0
1621 mh = coff_debug_merge_hash_lookup (&finfo->debug_merge, name,
1698 (*epp)->tagndx = finfo->sym_indices[indx];
1777 indx = _bfd_stringtab_add (finfo->strtab, name, hash, copy);
1832 if (! obj_pe (finfo->output_bfd))
1847 if (finfo->last_file_index != -1
1848 && finfo->last_file.n_value != (bfd_vma) output_index)
1852 finfo->last_file.n_value = output_index;
1853 if ((bfd_size_type) finfo->last_file_index >= syment_base)
1857 &finfo->last_file,
1858 (finfo->outsyms
1859 + ((finfo->last_file_index
1871 &finfo->last_file, outsym);
1873 pos += finfo->last_file_index * osymesz;
1880 finfo->last_file_index = output_index;
1881 finfo->last_file = isym;
1887 if (finfo->info->task_link && IS_EXTERNAL (input_bfd, isym))
1933 isymp = finfo->internal_syms;
1934 indexp = finfo->sym_indices;
1936 outsym = finfo->outsyms;
2007 indx = _bfd_stringtab_add (finfo->strtab, filename,
2032 while ((finfo->sym_indices[indx] < 0
2033 || ((bfd_size_type) finfo->sym_indices[indx]
2040 indx = finfo->sym_indices[indx];
2050 symindx = finfo->sym_indices[indx];
2070 if (finfo->last_bf_index != -1)
2072 finfo->last_bf.x_sym.x_fcnary.x_fcn.x_endndx.l =
2075 if ((bfd_size_type) finfo->last_bf_index
2084 auxout = (finfo->outsyms
2085 + ((finfo->last_bf_index
2090 &finfo->last_bf,
2106 &finfo->last_bf,
2112 pos += finfo->last_bf_index * osymesz;
2121 finfo->last_bf_index = -1;
2127 finfo->last_bf = *auxp;
2128 finfo->last_bf_index = (((outsym - finfo->outsyms)
2153 if (finfo->info->strip == strip_none
2154 || finfo->info->strip == strip_some)
2180 || bfd_bread (finfo->linenos, linesz * o->lineno_count,
2185 eline = finfo->linenos;
2186 oeline = finfo->linenos;
2203 indx = finfo->sym_indices[iline.l_addr.l_symndx];
2229 (finfo->outsyms
2238 auxptr = (finfo->outsyms
2247 + eline - finfo->linenos);
2268 amt = oeline - finfo->linenos;
2270 || bfd_bwrite (finfo->linenos, amt, output_bfd) != amt)
2281 if (finfo->last_file_index != -1
2282 && (bfd_size_type) finfo->last_file_index >= syment_base)
2284 finfo->last_file.n_value = output_index;
2285 bfd_coff_swap_sym_out (output_bfd, &finfo->last_file,
2286 (finfo->outsyms
2287 + ((finfo->last_file_index - syment_base)
2292 if (outsym > finfo->outsyms)
2298 amt = outsym - finfo->outsyms;
2300 || bfd_bwrite (finfo->outsyms, amt, output_bfd) != amt)
2304 + (outsym - finfo->outsyms) / osymesz)
2346 if (! bfd_get_section_contents (input_bfd, o, finfo->contents, 0, x))
2348 contents = finfo->contents;
2360 (input_bfd, o, FALSE, finfo->external_relocs,
2361 finfo->info->relocatable,
2362 (finfo->info->relocatable
2363 ? (finfo->section_info[target_index].relocs
2365 : finfo->internal_relocs)));
2371 if (! bfd_coff_relocate_section (output_bfd, finfo->info,
2375 finfo->internal_syms,
2376 finfo->sec_ptrs))
2379 if (finfo->info->relocatable)
2388 rel_hash = (finfo->section_info[target_index].rel_hashes
2405 if (! (*adjust_symndx) (output_bfd, finfo->info,
2435 indx = finfo->sym_indices[irel->r_symndx];
2448 is = finfo->internal_syms + irel->r_symndx;
2455 if (! ((*finfo->info->callbacks->unattached_reloc)
2456 (finfo->info, name, input_bfd, o,
2478 (output_bfd, &coff_hash_table (finfo->info)->stab_info,
2484 if (! finfo->info->keep_memory
2496 struct coff_final_link_info *finfo = (struct coff_final_link_info *) data;
2503 output_bfd = finfo->output_bfd;
2516 && (finfo->info->strip == strip_all
2517 || (finfo->info->strip == strip_some
2518 && (bfd_hash_lookup (finfo->info->keep_hash,
2549 if (! obj_pe (finfo->output_bfd))
2574 indx = _bfd_stringtab_add (finfo->strtab, h->root.root.string, hash,
2578 finfo->failed = TRUE;
2595 if (finfo->global_to_static)
2606 if (! finfo->info->shared
2607 && ! finfo->info->relocatable
2608 && IS_WEAK_EXTERNAL (finfo->output_bfd, isym))
2613 bfd_coff_swap_sym_out (output_bfd, &isym, finfo->outsyms);
2620 || bfd_bwrite (finfo->outsyms, symesz, output_bfd) != symesz)
2622 finfo->failed = TRUE;
2660 || finfo->info->relocatable))
2669 || finfo->info->relocatable))
2686 finfo->outsyms);
2687 if (bfd_bwrite (finfo->outsyms, symesz, output_bfd) != symesz)
2689 finfo->failed = TRUE;
2705 struct coff_final_link_info *finfo = (struct coff_final_link_info *) data;
2718 save_global_to_static = finfo->global_to_static;
2719 finfo->global_to_static = TRUE;
2721 finfo->global_to_static = save_global_to_static;
2734 struct coff_final_link_info *finfo,
2773 if (! ((*finfo->info->callbacks->reloc_overflow)
2774 (finfo->info, NULL,
2797 irel = (finfo->section_info[output_section->target_index].relocs
2799 rel_hash_ptr = (finfo->section_info[output_section->target_index].rel_hashes
2822 bfd_wrapped_link_hash_lookup (output_bfd, finfo->info,
2840 if (! ((*finfo->info->callbacks->unattached_reloc)
2841 (finfo->info, link_order->u.reloc.p->u.name, (bfd *) NULL,