* objcopy.c (copy_archive): Record all output BFD's, and close
them before unlinking them and removing the temporary directory, to avoid NFS problems. PR 6795.
This commit is contained in:
parent
cbd0453da4
commit
4c8d7e6be1
2 changed files with 15 additions and 5 deletions
|
@ -1,5 +1,9 @@
|
|||
Tue Jul 4 14:48:42 1995 Ian Lance Taylor <ian@cygnus.com>
|
||||
|
||||
* objcopy.c (copy_archive): Record all output BFD's, and close
|
||||
them before unlinking them and removing the temporary directory,
|
||||
to avoid NFS problems.
|
||||
|
||||
* ar.c (replace_members): In verbose messages, use 'r' when
|
||||
replacing a member, and 'a' when adding one.
|
||||
|
||||
|
|
|
@ -820,6 +820,7 @@ copy_archive (ibfd, obfd, output_target)
|
|||
{
|
||||
struct name_list *next;
|
||||
char *name;
|
||||
bfd *obfd;
|
||||
} *list, *l;
|
||||
bfd **ptr = &obfd->archive_head;
|
||||
bfd *this_element;
|
||||
|
@ -867,6 +868,8 @@ copy_archive (ibfd, obfd, output_target)
|
|||
/* Open the newly output file and attach to our list. */
|
||||
output_bfd = bfd_openr (output_name, output_target);
|
||||
|
||||
l->obfd = output_bfd;
|
||||
|
||||
*ptr = output_bfd;
|
||||
ptr = &output_bfd->next;
|
||||
|
||||
|
@ -883,15 +886,18 @@ copy_archive (ibfd, obfd, output_target)
|
|||
nonfatal (bfd_get_filename (obfd));
|
||||
}
|
||||
|
||||
/* Delete all the files that we opened. */
|
||||
for (l = list; l != NULL; l = l->next)
|
||||
unlink (l->name);
|
||||
rmdir (dir);
|
||||
|
||||
if (!bfd_close (ibfd))
|
||||
{
|
||||
nonfatal (bfd_get_filename (ibfd));
|
||||
}
|
||||
|
||||
/* Delete all the files that we opened. */
|
||||
for (l = list; l != NULL; l = l->next)
|
||||
{
|
||||
bfd_close (l->obfd);
|
||||
unlink (l->name);
|
||||
}
|
||||
rmdir (dir);
|
||||
}
|
||||
|
||||
/* The top-level control. */
|
||||
|
|
Loading…
Reference in a new issue