From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18839 invoked by alias); 16 Feb 2006 15:48:31 -0000 Received: (qmail 18824 invoked by uid 22791); 16 Feb 2006 15:48:29 -0000 X-Spam-Check-By: sourceware.org Received: from sunsite.ms.mff.cuni.cz (HELO sunsite.mff.cuni.cz) (195.113.15.26) by sourceware.org (qpsmtpd/0.31) with ESMTP; Thu, 16 Feb 2006 15:48:28 +0000 Received: from sunsite.mff.cuni.cz (sunsite.mff.cuni.cz [127.0.0.1]) by sunsite.mff.cuni.cz (8.13.1/8.13.1) with ESMTP id k1GFmIcp005210; Thu, 16 Feb 2006 16:48:18 +0100 Received: (from jj@localhost) by sunsite.mff.cuni.cz (8.13.1/8.13.1/Submit) id k1GFmI2F005207; Thu, 16 Feb 2006 16:48:18 +0100 Date: Thu, 16 Feb 2006 15:48:00 -0000 From: Jakub Jelinek To: Paul Brook Cc: Richard Guenther , gcc@gcc.gnu.org Subject: Re: gfortran and -mlong-double-128 Message-ID: <20060216154818.GP4625@sunsite.mff.cuni.cz> Reply-To: Jakub Jelinek References: <19c433eb0602160309y754cf258kd00227b6d80bff2b@mail.gmail.com> <200602161503.54114.paul@codesourcery.com> <84fc9c000602160718y4f4cd8c0v574924cc9ff2ea45@mail.gmail.com> <200602161528.47322.paul@codesourcery.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <200602161528.47322.paul@codesourcery.com> User-Agent: Mutt/1.4.1i 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 X-SW-Source: 2006-02/txt/msg00309.txt.bz2 On Thu, Feb 16, 2006 at 03:28:46PM +0000, Paul Brook wrote: > > The point is that from a gfortran perspective -mlong-double-128 doesn't > > change the ABI, it merely adds to it (which is sort of a change, but less > > invasive than changing long double from 8bytes to 16bytes). So we can > > easily cope with the user request for -mlong-double-128 by always providing > > the kind=16 intrinsics. > > Except it [potentially] also changes the ABI that libgfortran uses to talk to > glibc. ie. a -mlong-double-128 libgfortran probably won't work with a > -mlong-double-64 glibc. That is not a big deal. On the platforms we talk about (ppc{32,64}, s390{,x}, sparc32, alpha) glibc 2.4 and forward has 128-bit long double support, glibc 2.3.x and earlier doesn't, this isn't an optional glibc configure decision, it is part of glibc 2.4+ ABI on those arches. So, yes, you can't use -mlong-double-128 libgfortran against -mlong-double-64 glibc (read as, glibc 2.3.x or earlier), but that would mean you compiled/linked against glibc 2.4+ and are trying to run against glibc 2.3.x or earlier. That generally doesn't work for any glibc versions, glibc is only backwards compatible, not forward compatible. And you get a clear error when trying to load program's shared libraries (or e.g. various package managers like rpm will not even allow you to install that unless forced). Jakub