[RFC/RFA] dangling bfd pointer in archive cache...

Joel Brobecker brobecker@adacore.com
Wed Oct 3 13:30:00 GMT 2012


Hello Alan,

Thanks for the review!

> On Tue, Oct 02, 2012 at 07:14:06AM -0700, Joel Brobecker wrote:
> >         * opncls.c (bfd_close); Add call to _bfd_archive_close_and_cleanup.
> 
> No, we should already be calling _bfd_archive_close_and_cleanup via 

OK, but before I go ahead with your implementation, I wanted to
make sure about something...

> > --- a/bfd/opncls.c
> > +++ b/bfd/opncls.c
> > @@ -719,6 +719,17 @@ bfd_close (bfd *abfd)
> >    if (! BFD_SEND (abfd, _close_and_cleanup, (abfd)))
> 
> this call.  The problem is in coff-rs6000.c (and coff64-rs6000.c)
> where the bfd_target vector just uses bfd_true for close_and_cleanup.

... My reasoning is that this part of the job isn't target-specific.
It's entirely related to how the generic side of archives is handled,
not to the target itself. To me, it needs to be called regardless
of the actual target, and requiring that the target code set it up
is a recipe for having some of them forgetting to do it (which is
what actually happened here).

WDYT? Am I wrong?

-- 
Joel



More information about the Gdb-patches mailing list