unsatisfied virtual thunks PR4122 != 3536

Robert Boehne rboehne@ricardo-us.com
Wed Dec 12 20:12:00 GMT 2001


Craig:

This bug is separate and distinct from 3536.  The fix suggested in 3536
fixes the problem in 3536, but not the problem in 4122.

I have reproduced 4122 with today's (Dec. 12) 3.0 branch on
SGI IRIX 6.5 mips, IBM AIX 4.3.3 ppc, I386 GNU/Linux,
and Solaris 7 sparc.  I'm quite disappointed that this didn't do
the trick.  :(  I'm also curious as to why the patch for 3536
considers destructors separately, why would they be different?
Oh well, another caffinated night ahead of me...

Robert

Craig Rodrigues wrote:
> 
> On Wed, Dec 12, 2001 at 10:49:19AM -0600, Robert Boehne wrote:
> > Harri:
> >
> > Have a look at PR4122.  This is a regression from 2.95.x and is present
> > in all 3.x versions.  I get this with libsigc++ 1.1 on AIX using the
> > > /usr/ccs/bin/ld: Unsatisfied symbols:
> > >    virtual thunk to
> > > CosNaming::_impl_BindingIterator::~_impl_BindingIterator()(first referenced
> > > in NamingContext_i.o) (data)
> > >    virtual thunk to PortableServer::ServantBase::_downcast()(first referenced
> > > in NamingContext_i.o) (data)
> 
> Hi,
> 
> In PR 3536, which looks similar:
> http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&pr=3536&database=gcc
> 
> The following patch was proposed for cp/method.c:
> 
> ===================================================================
> Hello,
> 
>  The thunks were actually generated and found in the object files but they
>  were not public so linking failed. Adding the three lower lines to the
>  function make_thunk() in /gcc/cp/method.c seems solve problem 3536.
> 
>  Line 361:
> 
>        /* And neither is it a clone.  */
>        DECL_CLONED_FUNCTION (thunk) = NULL_TREE;
>        DECL_EXTERNAL (thunk) = 1;
> 
>  +     /* Make the thunk public unless it is for a destructor */
>  +     if (!DECL_DESTRUCTOR_P (func_decl))
>  +      TREE_PUBLIC (thunk) = 1;
> 
> 
>  Regards,
>  Thomas
> ===================================================================
> 
> Could you try it and see if it solves the problem?
> --
> Craig Rodrigues
> http://www.gis.net/~craigr
> rodrigc@mediaone.net

-- 
Robert Boehne             Software Engineer
Ricardo Software   Chicago Technical Center
TEL: (630)789-0003 x. 238
FAX: (630)789-0127
email:  rboehne@ricardo-us.com



More information about the Gcc mailing list