Lines Matching refs:abfd

142 #define BFD_GNU960_ARMAG(abfd)	(BFD_COFF_FILE_P((abfd)) ? ARMAG : ARMAGB)
157 #define ar_padchar(abfd) ((abfd)->xvec->ar_pad_char)
158 #define ar_maxnamelen(abfd) ((abfd)->xvec->ar_max_namelen)
166 _bfd_generic_mkarchive (bfd *abfd)
170 abfd->tdata.aout_ar_data = bfd_zalloc (abfd, amt);
171 if (bfd_ardata (abfd) == NULL)
174 bfd_ardata (abfd)->cache = NULL;
175 bfd_ardata (abfd)->archive_head = NULL;
176 bfd_ardata (abfd)->symdefs = NULL;
177 bfd_ardata (abfd)->extended_names = NULL;
178 bfd_ardata (abfd)->tdata = NULL;
189 (bfd *abfd, symindex previous, carsym **sym);
192 Step through archive @var{abfd}'s symbol table (if it
206 bfd_get_next_mapent (bfd *abfd, symindex prev, carsym **entry)
208 if (!bfd_has_map (abfd))
218 if (prev >= bfd_ardata (abfd)->symdef_count)
221 *entry = (bfd_ardata (abfd)->symdefs + prev);
325 _bfd_generic_read_ar_hdr (bfd *abfd)
327 return _bfd_generic_read_ar_hdr_mag (abfd, NULL);
334 _bfd_generic_read_ar_hdr_mag (bfd *abfd, const char *mag)
345 if (bfd_bread (hdrp, sizeof (struct ar_hdr), abfd) != sizeof (struct ar_hdr))
372 && memchr (hdr.ar_name, '/', ar_maxnamelen (abfd)) == NULL))
373 && bfd_ardata (abfd)->extended_names != NULL)
375 filename = get_extended_arelt_filename (abfd, hdr.ar_name);
394 allocptr = bfd_zalloc (abfd, allocsize);
400 if (bfd_bread (filename, namelen, abfd) != namelen)
415 e = memchr (hdr.ar_name, '\0', ar_maxnamelen (abfd));
418 e = memchr (hdr.ar_name, '/', ar_maxnamelen (abfd));
420 e = memchr (hdr.ar_name, ' ', ar_maxnamelen (abfd));
429 namelen = ar_maxnamelen (abfd);
437 allocptr = bfd_zalloc (abfd, allocsize);
513 _bfd_generic_get_elt_at_index (bfd *abfd, symindex index)
517 entry = bfd_ardata (abfd)->symdefs + index;
518 return _bfd_get_elt_at_filepos (abfd, entry->file_offset);
574 bfd_generic_archive_p (bfd *abfd)
580 if (bfd_bread (armag, SARMAG, abfd) != SARMAG)
588 if (strncmp (armag, BFD_GNU960_ARMAG (abfd), SARMAG) != 0)
596 tdata_hold = bfd_ardata (abfd);
599 bfd_ardata (abfd) = bfd_zalloc (abfd, amt);
600 if (bfd_ardata (abfd) == NULL)
602 bfd_ardata (abfd) = tdata_hold;
606 bfd_ardata (abfd)->first_file_filepos = SARMAG;
607 bfd_ardata (abfd)->cache = NULL;
608 bfd_ardata (abfd)->archive_head = NULL;
609 bfd_ardata (abfd)->symdefs = NULL;
610 bfd_ardata (abfd)->extended_names = NULL;
611 bfd_ardata (abfd)->tdata = NULL;
613 if (!BFD_SEND (abfd, _bfd_slurp_armap, (abfd))
614 || !BFD_SEND (abfd, _bfd_slurp_extended_name_table, (abfd)))
618 bfd_release (abfd, bfd_ardata (abfd));
619 bfd_ardata (abfd) = tdata_hold;
623 if (bfd_has_map (abfd))
638 first = bfd_openr_next_archived_file (abfd, NULL);
646 && first->xvec != abfd->xvec)
654 bfd_release (abfd, bfd_ardata (abfd));
657 bfd_ardata (abfd) = tdata_hold;
664 return abfd->xvec;
687 do_slurp_bsd_armap (bfd *abfd)
692 struct artdata *ardata = bfd_ardata (abfd);
697 mapdata = _bfd_read_ar_hdr (abfd);
701 bfd_release (abfd, mapdata); /* Don't need it any more. */
703 raw_armap = bfd_zalloc (abfd, parsed_size);
707 if (bfd_bread (raw_armap, parsed_size, abfd) != parsed_size)
712 bfd_release (abfd, raw_armap);
716 ardata->symdef_count = H_GET_32 (abfd, raw_armap) / BSD_SYMDEF_SIZE;
732 ardata->symdefs = bfd_alloc (abfd, amt);
740 set->name = H_GET_32 (abfd, rbase) + stringbase;
741 set->file_offset = H_GET_32 (abfd, rbase + BSD_SYMDEF_OFFSET_SIZE);
744 ardata->first_file_filepos = bfd_tell (abfd);
750 bfd_has_map (abfd) = TRUE;
757 do_slurp_coff_armap (bfd *abfd)
761 struct artdata *ardata = bfd_ardata (abfd);
772 mapdata = _bfd_read_ar_hdr (abfd);
776 bfd_release (abfd, mapdata); /* Don't need it any more. */
778 if (bfd_bread (int_buf, 4, abfd) != 4)
797 && bfd_get_arch (abfd) == bfd_arch_i960
798 && bfd_get_flavour (abfd) == bfd_target_coff_flavour)
813 ardata->symdefs = bfd_zalloc (abfd, carsym_size + stringsize + 1);
820 raw_armap = bfd_alloc (abfd, ptrsize);
823 if (bfd_bread (raw_armap, ptrsize, abfd) != ptrsize
824 || (bfd_bread (stringbase, stringsize, abfd) != stringsize))
843 ardata->first_file_filepos = bfd_tell (abfd);
847 bfd_has_map (abfd) = TRUE;
848 bfd_release (abfd, raw_armap);
854 bfd_seek (abfd, ardata->first_file_filepos, SEEK_SET);
855 tmp = _bfd_read_ar_hdr (abfd);
864 bfd_release (abfd, tmp);
871 bfd_release (abfd, raw_armap);
873 bfd_release (abfd, (ardata)->symdefs);
881 bfd_slurp_armap (bfd *abfd)
884 int i = bfd_bread (nextname, 16, abfd);
891 if (bfd_seek (abfd, (file_ptr) -16, SEEK_CUR) != 0)
896 return do_slurp_bsd_armap (abfd);
898 return do_slurp_coff_armap (abfd);
904 return bfd_elf64_archive_slurp_armap (abfd);
911 bfd_has_map (abfd) = FALSE;
924 bfd_slurp_bsd_armap_f2 (bfd *abfd)
930 struct artdata *ardata = bfd_ardata (abfd);
935 int i = bfd_bread (nextname, 16, abfd);
943 if (bfd_seek (abfd, (file_ptr) -16, SEEK_CUR) != 0)
948 return do_slurp_bsd_armap (abfd);
952 bfd_has_map (abfd) = FALSE;
956 mapdata = _bfd_read_ar_hdr (abfd);
961 raw_armap = bfd_zalloc (abfd, amt);
965 bfd_release (abfd, mapdata);
969 if (bfd_bread (raw_armap, amt, abfd) != amt)
974 bfd_release (abfd, raw_armap);
978 ardata->symdef_count = H_GET_16 (abfd, raw_armap);
990 stringsize = H_GET_32 (abfd, raw_armap + HPUX_SYMDEF_COUNT_SIZE);
997 ardata->symdefs = bfd_alloc (abfd, amt);
1005 set->name = H_GET_32 (abfd, rbase) + stringbase;
1006 set->file_offset = H_GET_32 (abfd, rbase + BSD_SYMDEF_OFFSET_SIZE);
1009 ardata->first_file_filepos = bfd_tell (abfd);
1015 bfd_has_map (abfd) = TRUE;
1033 _bfd_slurp_extended_name_table (bfd *abfd)
1041 bfd_seek (abfd, bfd_ardata (abfd)->first_file_filepos, SEEK_SET);
1042 if (bfd_bread (nextname, 16, abfd) == 16)
1044 if (bfd_seek (abfd, (file_ptr) -16, SEEK_CUR) != 0)
1050 bfd_ardata (abfd)->extended_names = NULL;
1054 namedata = _bfd_read_ar_hdr (abfd);
1059 bfd_ardata (abfd)->extended_names = bfd_zalloc (abfd, amt);
1060 if (bfd_ardata (abfd)->extended_names == NULL)
1063 bfd_release (abfd, namedata);
1067 if (bfd_bread (bfd_ardata (abfd)->extended_names, amt, abfd) != amt)
1071 bfd_release (abfd, (bfd_ardata (abfd)->extended_names));
1072 bfd_ardata (abfd)->extended_names = NULL;
1082 char *temp = bfd_ardata (abfd)->extended_names;
1094 bfd_ardata (abfd)->first_file_filepos = bfd_tell (abfd);
1095 bfd_ardata (abfd)->first_file_filepos +=
1096 (bfd_ardata (abfd)->first_file_filepos) % 2;
1101 bfd_release (abfd, namedata);
1113 normalize (bfd *abfd, const char *file)
1134 copy = bfd_alloc (abfd, last - first + 1);
1146 normalize (bfd *abfd ATTRIBUTE_UNUSED, const char *file)
1171 _bfd_archive_bsd_construct_extended_name_table (bfd *abfd,
1177 return _bfd_construct_extended_name_table (abfd, FALSE, tabloc, tablen);
1183 _bfd_archive_coff_construct_extended_name_table (bfd *abfd,
1189 return _bfd_construct_extended_name_table (abfd, TRUE, tabloc, tablen);
1201 _bfd_construct_extended_name_table (bfd *abfd,
1206 unsigned int maxname = abfd->xvec->ar_max_namelen;
1214 for (current = abfd->archive_head; current != NULL; current = current->next)
1226 && (bfd_get_file_flags (abfd) & BFD_TRADITIONAL_FORMAT) != 0)
1259 *tabloc = bfd_zalloc (abfd, total_namelen);
1266 for (current = abfd->archive_head; current != NULL; current =
1345 bfd_ar_hdr_from_filesystem (bfd *abfd, const char *filename, bfd *member)
1370 ared = bfd_zalloc (abfd, amt);
1425 bfd_special_undocumented_glue (bfd *abfd, const char *filename)
1427 struct areltdata *ar_elt = bfd_ar_hdr_from_filesystem (abfd, filename, 0);
1436 bfd_generic_stat_arch_elt (bfd *abfd, struct stat *buf)
1441 if (abfd->arelt_data == NULL)
1447 hdr = arch_hdr (abfd);
1485 buf->st_size = arch_eltdata (abfd)->parsed_size;
1491 bfd_dont_truncate_arname (bfd *abfd, const char *pathname, char *arhdr)
1501 size_t maxlen = ar_maxnamelen (abfd);
1503 if ((bfd_get_file_flags (abfd) & BFD_TRADITIONAL_FORMAT) != 0)
1505 bfd_bsd_truncate_arname (abfd, pathname, arhdr);
1509 filename = normalize (abfd, pathname);
1524 (hdr->ar_name)[length] = ar_padchar (abfd);
1528 bfd_bsd_truncate_arname (bfd *abfd, const char *pathname, char *arhdr)
1533 size_t maxlen = ar_maxnamelen (abfd);
1563 (hdr->ar_name)[length] = ar_padchar (abfd);
1576 bfd_gnu_truncate_arname (bfd *abfd, const char *pathname, char *arhdr)
1581 size_t maxlen = ar_maxnamelen (abfd);
1615 (hdr->ar_name)[length] = ar_padchar (abfd);
1881 map[orl_count].u.abfd = current;
1970 if (map[count].u.abfd != last_elt)
1978 while (current != map[count].u.abfd);
2143 while (count < symbol_count && map[count].u.abfd == current)