From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22911 invoked by alias); 6 Dec 2001 18:39:04 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 22890 invoked from network); 6 Dec 2001 18:39:03 -0000 Received: from unknown (HELO boreas.ricardo-us.com) (199.178.221.2) by sources.redhat.com with SMTP; 6 Dec 2001 18:39:03 -0000 Received: from ricardo-us.com (icarus.ricardo-us.com [172.20.16.40]) by boreas.ricardo-us.com (AIX4.3/8.9.3/8.8.8) with ESMTP id MAA18754; Thu, 6 Dec 2001 12:39:00 -0600 Message-ID: <3C0FBB43.AF3CFC3B@ricardo-us.com> Date: Thu, 06 Dec 2001 11:18:00 -0000 From: Robert Boehne Organization: Ricardo Software X-Mailer: Mozilla 4.78 [en] (X11; U; Linux 2.2.16-3 i686) X-Accept-Language: en MIME-Version: 1.0 To: David Edelsohn CC: gcc@gcc.gnu.org Subject: PR4122 Regression from 2.95 in 3.0.2 (Was: Re: AIX g++ 3.0.2 Undefined symbol: virtual thunk to...) References: <200112061744.MAA26192@makai.watson.ibm.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-SW-Source: 2001-12/txt/msg00294.txt.bz2 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> > 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