From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25559 invoked by alias); 30 Jul 2005 23:00:39 -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 25549 invoked by uid 22791); 30 Jul 2005 23:00:35 -0000 Received: from main.gmane.org (HELO ciao.gmane.org) (80.91.229.2) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Sat, 30 Jul 2005 23:00:35 +0000 Received: from root by ciao.gmane.org with local (Exim 4.43) id 1Dz0Jk-0001NU-2k for gcc@gcc.gnu.org; Sun, 31 Jul 2005 01:00:32 +0200 Received: from cpc1-macc1-3-0-cust53.bagu.cable.ntl.com ([81.97.76.53]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 31 Jul 2005 01:00:32 +0200 Received: from mike by cpc1-macc1-3-0-cust53.bagu.cable.ntl.com with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 31 Jul 2005 01:00:32 +0200 To: gcc@gcc.gnu.org From: Mike Hearn Subject: Symbol versions for inlined symbols Date: Sat, 30 Jul 2005 23:00:00 -0000 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit User-Agent: Pan/0.14.2.91 (As She Crawled Across the Table) X-SW-Source: 2005-07/txt/msg01264.txt.bz2 Hi, One problem with the parallel C++ ABI versioning (which makes it not so useful) is that symbols in the libstdc++ namespaces are put into the generated binary if you use the STL. Those generated symbols are *not* symbol versioned so conflicts can still occur. This is registered in bugzilla and has been for a while, with no sign of a fix. So I thought I'd look at it. Would an acceptable solution be to have a new attribute that set the symbol version for inlined functions. That way, the STL headers could be annotated like so: class XXX { int STD_VERSION std::whatever() { return 4; } } An alternative approach would be to have the linker assigned inlined symbols the same version tag as whatever the same symbol in libstdc++ has, but I'm not sure how I'd implement this. Does anybody have insight? thanks -mike