From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 59622 invoked by alias); 13 Mar 2018 15:14:54 -0000 Mailing-List: contact fortran-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: fortran-owner@gcc.gnu.org Received: (qmail 59591 invoked by uid 89); 13 Mar 2018 15:14:52 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=3.5 required=5.0 tests=AWL,BAYES_00,SPAM_BODY,SPF_PASS autolearn=no version=3.3.2 spammy=Shipping X-HELO: serenity.mcc.ac.uk Received: from serenity.mcc.ac.uk (HELO serenity.mcc.ac.uk) (130.88.200.93) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 13 Mar 2018 15:14:50 +0000 Received: from asmtp2.its.manchester.ac.uk ([130.88.13.150]) by serenity.mcc.ac.uk with esmtps (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.85 (FreeBSD)) (envelope-from ) id 1evldY-000Gig-Fc; Tue, 13 Mar 2018 15:14:48 +0000 Received: from [10.247.128.31] (port=49318 helo=albion.it.manchester.ac.uk) by asmtp2.its.manchester.ac.uk with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.89) (envelope-from ) id 1evldY-0007gA-5V; Tue, 13 Mar 2018 15:14:48 +0000 From: Dave Love To: Thomas Koenig Cc: Subject: Re: backwards incompatibility References: <871sgp8fpb.fsf@albion.it.manchester.ac.uk> X-Draft-From: ("Misc" 5398) Date: Tue, 13 Mar 2018 15:14:00 -0000 In-Reply-To: (Thomas Koenig's message of "Mon, 12 Mar 2018 22:17:56 +0100") Message-ID: <87zi3c57o8.fsf@albion.it.manchester.ac.uk> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Authenticated-From: Dave.Love@manchester.ac.uk X-SA-Exim-Connect-IP: 130.88.13.150 X-SA-Exim-Mail-From: dave.love@manchester.ac.uk X-SA-Exim-Scanned: No (on serenity.mcc.ac.uk); SAEximRunCond expanded to false X-Spam-Score: -5.0(?) X-SW-Source: 2018-03/txt/msg00051.txt.bz2 Thomas Koenig writes: > Hi Dave, > >> It's quite a pain for supporting research systems that the gfortran >> module format changes incompatibly with every (?) new version. > > A lot of releases, yes. The problem is that we use a lot of positional > parameters in the files. > > I have given a little thought of how to get around that by using some > sort of keyword-value scheme, which by definition are almost infinitely > extensible. > > Another possibility would be to write out INTERFACE blocks as *.mod > files, which could then be re-read and re-parsed. > > Just two problems: To a) get the design right, and b) get the > implementation right. This would take a lot of effort, and the > manpower simplfy isn't there (and it hasn't figured high on the > list of priorities). > > Of course, volunteers are always welcome. The immediate interest is in whether it's possible to write translations of old .mods to newer formats to solve the existing issues, but that presumably only makes sense if you can reliably mix code compiled with old and new compiler versions. I'll see how far I can get with module.c when I have a chance, thanks. >> Version 8 makes the situation worse by breaking run time compatibility, >> not just build-time, with a different libgfortran shared library >> version. > > This had to be done in order to fix long-standing bugs, and to allow > Fortran 2008 compliance. We tried to stuff as much as possible into > this release, to avoid breaking binary compatibility for as many > releases as possible. Sure, I understand the need for mods of some sort. >> That already caused considerable disruption with Fedora >> packaging after the switch to GCC 8. > > What's the problem? Shipping two versions of shared libraries together > cannot be that hard, can it? OpenSUSE tumbleweed, which already > ships a pre-gcc8, manages this fine. Yes, I have libgfortran.3 and .4 in RHEL, but it's not clear I can (reliably) link libraries which require both of them in the same binary. I suppose I should at least pull out abidiff. >> With ELF, can't you use versioned >> symbols to avoid a new soname, like libgcc and libgomp do? > > There are other systems which command equal attention - AIX, cygwin, > MacOS. Of course, volunteers are always welcome... I'm surprised AIX commands equal attention to GNU/Linux, but you have ELF versioning anyway. It's just not clear how libgfortran is different from libstdc++ or libgomp and whether there are considerations past the library ABI. I hope it doesn't look as if I'm just moaning. I might be able to do some work, and I have some (very old) history with GNU Fortran. I was asking because I'd guess just reading source isn't good enough to understand.