From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28109 invoked by alias); 8 Jan 2014 08:57:05 -0000 Mailing-List: contact gcc-help-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-help-owner@gcc.gnu.org Received: (qmail 28096 invoked by uid 89); 8 Jan 2014 08:57:04 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.7 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 X-HELO: mail-lb0-f172.google.com Received: from mail-lb0-f172.google.com (HELO mail-lb0-f172.google.com) (209.85.217.172) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-SHA encrypted) ESMTPS; Wed, 08 Jan 2014 08:57:03 +0000 Received: by mail-lb0-f172.google.com with SMTP id x18so1092426lbi.31 for ; Wed, 08 Jan 2014 00:56:59 -0800 (PST) MIME-Version: 1.0 X-Received: by 10.152.44.225 with SMTP id h1mr49281303lam.22.1389171419289; Wed, 08 Jan 2014 00:56:59 -0800 (PST) Received: by 10.112.132.168 with HTTP; Wed, 8 Jan 2014 00:56:59 -0800 (PST) In-Reply-To: <1389135965518-1000550.post@n5.nabble.com> References: <1389135965518-1000550.post@n5.nabble.com> Date: Wed, 08 Jan 2014 08:57:00 -0000 Message-ID: Subject: Re: Runtime warning: Symbol [vtable] has different size in shared object, consider relinking From: Jonathan Wakely To: Tyler Cardon Cc: gcc-help Content-Type: text/plain; charset=ISO-8859-1 X-IsSubscribed: yes X-SW-Source: 2014-01/txt/msg00020.txt.bz2 On Jan 7, 2014 11:06 PM, "Tyler Cardon" wrote: > > Does this mean that adding virtual method declarations (even without > changing virtual method order) breaks the base class library's abi? It is a violation of the C++ One Definition Rule, so undefined behaviour. It will not behave correctly if you have a class that has CTest as a (direct or indirect) base class and adds new virtual functions to the vtable, because the new functions will be expected to appear in different slots in the vtable depending on which version of the base class has been seen. You might find http://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C++ useful.