From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 120252 invoked by alias); 2 Jan 2016 14:40:31 -0000 Mailing-List: contact java-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: java-patches-owner@gcc.gnu.org Received: (qmail 120233 invoked by uid 89); 2 Jan 2016 14:40:30 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_LOW autolearn=ham version=3.3.2 spammy=preparing, bump, mostly, gcj X-HELO: einhorn.in-berlin.de Received: from einhorn.in-berlin.de (HELO einhorn.in-berlin.de) (192.109.42.8) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES256-GCM-SHA384 encrypted) ESMTPS; Sat, 02 Jan 2016 14:40:28 +0000 X-Envelope-From: doko@ubuntu.com Received: from [192.168.178.29] (ip5f5bf74d.dynamic.kabel-deutschland.de [95.91.247.77] (may be forged)) (authenticated bits=0) by einhorn.in-berlin.de (8.14.4/8.14.4/Debian-4) with ESMTP id u02EeOMe006981 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Sat, 2 Jan 2016 15:40:25 +0100 Subject: Re: [patch] [java] bump libgcj soname To: Jakub Jelinek References: <55365991.4030806@ubuntu.com> <20150421141125.GW1725@tucnak.redhat.com> <55365BB2.4080603@ubuntu.com> <20150421141924.GX1725@tucnak.redhat.com> <55365EE0.8070202@ubuntu.com> <20150421143747.GY1725@tucnak.redhat.com> Cc: GCJ-patches , "gcc-patches@gnu.org" From: Matthias Klose Message-ID: <5687E158.7000401@ubuntu.com> Date: Sat, 02 Jan 2016 14:40:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.4.0 MIME-Version: 1.0 In-Reply-To: <20150421143747.GY1725@tucnak.redhat.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2016-q1/txt/msg00000.txt.bz2 On 21.04.2015 16:37, Jakub Jelinek wrote: > On Tue, Apr 21, 2015 at 04:29:52PM +0200, Matthias Klose wrote: >> On 04/21/2015 04:19 PM, Jakub Jelinek wrote: >>> On Tue, Apr 21, 2015 at 04:16:18PM +0200, Matthias Klose wrote: >>>> On 04/21/2015 04:11 PM, Jakub Jelinek wrote: >>>>> On Tue, Apr 21, 2015 at 04:07:13PM +0200, Matthias Klose wrote: >>>>>> bump the libgcj soname on the trunk, as done for every release cycle, >>>>> >>>>> Is that really needed though these days? >>>>> Weren't there basically zero changes to libjava (both libjava and >>>>> libjava/classpath) in the last 2 or more years? >>>>> The few ones were mostly updating Copyright notices, minor configure >>>>> changes, but I really haven't seen anything ABI changing for quite a while. >>>> >>>> yes, the GCC version is embedded in the GCJ_VERSIONED_LIBDIR >>>> >>>> which is defined as >>>> >>>> gcjsubdir=gcj-$gcjversion-$libgcj_soversion >>>> dbexecdir='$(toolexeclibdir)/'$gcjsubdir >>> >>> But why is that an argument for bumping it? If both GCC 5 and GCC 6 will >>> (likely) provide the same ABI in the library, there is no reason not to use >>> the same directory for those. >> >> but currently there are different directories used (gcjversion already changed >> on the trunk) and compiled into the library. Do you mean that gcjsubdir should >> be just defined as gcj? > > What depends on BASE-VER sure, that is bumped automatically and should track > the gcc version. But the soname, which is an unrelated number, there is no > point to bump it. If you have a packaging issue, just solve it on the > packaging side, but really there is no point to yearly bump a soname of > something that doesn't change at all (and is really dead project for many > years). preparing for a test rebuild of the archive, and trying to run gcj-dbtool (from GCC 5) with libgcj16 (from GCC 6): $ gcj-dbtool -n /tmp/foo.db libgcj failure: gcj linkage error. Incorrect library ABI version detected. Aborting. Aborted (core dumped) natClassLoader.cc:_Jv_CheckABIVersion checks the ABI version, which is defined as libjava/include/jvm.h:#define GCJ_CXX_ABI_VERSION (__GNUC__ * 100000 + __GNUC_MINOR__ * 1000) so this will be seen with everything directly linked to libgcj with a libgcj16 upgraded to GCC 6. So what to do? Bump the soname, or discard this check? In any case, GCJ_CXX_ABI_VERSION should be changed to not include __GNUC_MINOR__ anymore. Maybe for the gcc-5-branch, set it unconditionally to 3 so that it won't change anymore with future releases from the gcc-5 branch? Matthias