if (0 > bfd_seek (archive, filepos, SEEK_SET))
return NULL;
- if ((new_areldata = _bfd_read_ar_hdr (archive)) == NULL)
+ if ((new_areldata = (struct areltdata *) _bfd_read_ar_hdr (archive)) == NULL)
return NULL;
n_nfd = _bfd_create_empty_archive_element_shell (archive);
return NULL;
}
- if (bfd_has_map (abfd) && abfd->target_defaulted)
+ if (bfd_has_map (abfd))
{
bfd *first;
first = bfd_openr_next_archived_file (abfd, (bfd *) NULL);
if (first != NULL)
{
+ boolean fail;
+
first->target_defaulted = false;
+ fail = false;
if (! bfd_check_format (first, bfd_object))
+ fail = true;
+ else if (first->xvec != abfd->xvec)
+ {
+ bfd_set_error (bfd_error_wrong_format);
+ fail = true;
+ }
+ if (fail)
{
bfd_error_type err;
unsigned int parsed_size;
carsym *set;
- mapdata = _bfd_read_ar_hdr (abfd);
+ mapdata = (struct areltdata *) _bfd_read_ar_hdr (abfd);
if (mapdata == NULL)
return false;
parsed_size = mapdata->parsed_size;
char int_buf[sizeof (long)];
unsigned int carsym_size, ptrsize, i;
- mapdata = _bfd_read_ar_hdr (abfd);
+ mapdata = (struct areltdata *) _bfd_read_ar_hdr (abfd);
if (mapdata == NULL)
return false;
parsed_size = mapdata->parsed_size;
struct areltdata *tmp;
bfd_seek (abfd, ardata->first_file_filepos, SEEK_SET);
- tmp = _bfd_read_ar_hdr (abfd);
+ tmp = (struct areltdata *) _bfd_read_ar_hdr (abfd);
if (tmp != NULL)
{
if (tmp->arch_header[0] == '/'
return true;
}
- mapdata = _bfd_read_ar_hdr (abfd);
+ mapdata = (struct areltdata *) _bfd_read_ar_hdr (abfd);
if (mapdata == NULL)
return false;
return true;
}
- namedata = _bfd_read_ar_hdr (abfd);
+ namedata = (struct areltdata *) _bfd_read_ar_hdr (abfd);
if (namedata == NULL)
return false;