From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31856 invoked by alias); 20 May 2003 18:38:17 -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 31739 invoked from network); 20 May 2003 18:38:15 -0000 Received: from unknown (HELO piper.synopsys.com) (204.176.21.196) by sources.redhat.com with SMTP; 20 May 2003 18:38:15 -0000 Received: (from jbuck@localhost) by piper.synopsys.com (8.11.6/8.11.6) id h4KIbh516076; Tue, 20 May 2003 11:37:43 -0700 Date: Tue, 20 May 2003 18:38:00 -0000 From: Joe Buck To: gp@qnx.com Cc: gcc@gcc.gnu.org Subject: Re: libsupc++, _cxa references, and Dinkum libcpp Message-ID: <20030520113743.A15089@synopsys.com> References: <20030520094658.A12888@synopsys.com> <200305201721.h4KHLYi08937@webmail.ott.qnx.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i In-Reply-To: <200305201721.h4KHLYi08937@webmail.ott.qnx.com>; from gp@qnx.com on Tue, May 20, 2003 at 05:21:34PM -0000 X-SW-Source: 2003-05/txt/msg01889.txt.bz2 On Tue, May 20, 2003 at 05:21:34PM -0000, gp@qnx.com wrote: > > > Thanks, Joe. I appreciate your feedback. > > I was under the impression that gcc and libstdc++ were seperate products, and > that the __cxa symbols being emitted by cc1plus were gnu stdc++ specific, > thereby tying gcc to a particular C++ library. And I thought this was > generally undesireable, as opposed to being undesireable just for me. > > Always willing to be corrected. :-) It appears that you continue to confuse libsupc++ and libstdc++. The former is a tiny library, the latter is a big library. The compiler alone will generate code that requires only the former. > So to clarify my understanding, the __cxa symbols being emitted by cc1plus are > part of the C++ standard, and are missing from Dinkumware, yes? No. Names beginning with double underscore are reserved to the implementation: they are non-portable compiler internals. According to ISO C++ rules, user programs may not define such names, only the compiler and standard library get to (programmers who violate this rule might get away with it, but they are not writing portable programs). Dinkumware probably contains a number of its own double-underscore names, to implement needed features. They are allowed to use this namespace because they are also implementing a standard library. GNU C++ assumes that libsupc++ is present. Your problem appears to be that Dinkumware wants to provide its own version of some things that libsupc++ provides. So, you'll have to hack one or the other.