PR binutils/14567
authorAlan Modra <amodra@gmail.com>
Tue, 6 Nov 2012 09:31:12 +0000 (09:31 +0000)
committerAlan Modra <amodra@gmail.com>
Tue, 6 Nov 2012 09:31:12 +0000 (09:31 +0000)
* opncls.c (opncls_iovec): Forward declare.
(_bfd_new_bfd_contained_in): If using opncls_iovec, copy iostream
to new bfd.

bfd/ChangeLog
bfd/opncls.c

index cea4177ecd566bb94d9cb1b3f8827a511826eb2f..02a6eab18e2dedd5624665813fdc1b6680c60528 100644 (file)
@@ -1,3 +1,10 @@
+2012-11-06  Alan Modra  <amodra@gmail.com>
+
+       PR binutils/14567
+       * opncls.c (opncls_iovec): Forward declare.
+       (_bfd_new_bfd_contained_in): If using opncls_iovec, copy iostream
+       to new bfd.
+
 2012-11-06  Alan Modra  <amodra@gmail.com>
 
        * mach-o.c (bfd_mach_o_close_and_cleanup): Don't call
index fdccba371ecd0cebb6d623d7d11396a2ca84adad..8fd9ac86a9710b80f82e8e240b19b43144737e37 100644 (file)
@@ -107,6 +107,8 @@ _bfd_new_bfd (void)
   return nbfd;
 }
 
+static const struct bfd_iovec opncls_iovec;
+
 /* Allocate a new BFD as a member of archive OBFD.  */
 
 bfd *
@@ -119,6 +121,8 @@ _bfd_new_bfd_contained_in (bfd *obfd)
     return NULL;
   nbfd->xvec = obfd->xvec;
   nbfd->iovec = obfd->iovec;
+  if (obfd->iovec == &opncls_iovec)
+    nbfd->iostream = obfd->iostream;
   nbfd->my_archive = obfd;
   nbfd->direction = read_direction;
   nbfd->target_defaulted = obfd->target_defaulted;