This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
PR4122 Regression from 2.95 in 3.0.2 (Was: Re: AIX g++ 3.0.2 Undefined symbol: virtual thunk to...)
- From: Robert Boehne <rboehne at ricardo-us dot com>
- To: David Edelsohn <dje at watson dot ibm dot com>
- Cc: gcc at gcc dot gnu dot org
- Date: Thu, 06 Dec 2001 12:38:59 -0600
- Subject: PR4122 Regression from 2.95 in 3.0.2 (Was: Re: AIX g++ 3.0.2 Undefined symbol: virtual thunk to...)
- Organization: Ricardo Software
- References: <200112061744.MAA26192@makai.watson.ibm.com>
David:
I've looked into this some more and it appears to be a known problem
PR4122, and a regression from 2.95.3, and is not AIX specific.
In my case, libsigc++-1.1.4, the problem does not have the
workaround alluded to in GNATS.
ref:
http://gcc.gnu.org/ml/gcc-bugs/2001-08/msg00919.html
I have run into this with other code as well, I hate to beg,
but could a fix for this be considered for 3.0.3?
Thanks,
Robert
David Edelsohn wrote:
>
> >>>>> Robert Boehne writes:
>
> Robert> Now I'm baffled. If g++ isn't generating them, how do they get
> Robert> into my object code? Doing an nm of this library I get 68 lines
> Robert> that match "thunk".
> Robert> nm ./sigc++/.libs/libsigc.a | c++filt | grep thunk
> Robert> 000000001004b668 t .non-virtual thunk to std::iostream::~iostream()
> Robert> <SNIP>
> Robert> 0000000020010e48 d virtual thunk to std::strstream::~strstream()
> Robert> 0000000020010ca4 d virtual thunk to SigC::Object::~Object()
> Robert> 0000000020010c98 d virtual thunk to
> Robert> SigC::Object::~Object()
>
> Robert> Are you saying that some other compiler is generating these?
> Robert> My suspicion is that it is related to having a compiler configured
> Robert> with "--disable-shared --disable-threads" so I'm working on
> Robert> re-bootstrapping gcc with "--enable-threads=posix --enable-shared".
> Robert> I'm not sure what a "thunk" is so the link error doesn't help
> Robert> me much.
>
> I do not know what a virtual thunk is.
>
> Thunks are described on many websites. It is a piece of code to
> fix up the "this" pointer for multiple inheritance.
>
> Maybe some part of GCC is not obeying #ifdef ASM_OUTPUT_MI_THUNK.
>
> David
--
Robert Boehne Software Engineer
Ricardo Software Chicago Technical Center
TEL: (630)789-0003 x. 238
FAX: (630)789-0127
email: rboehne@ricardo-us.com