From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4778 invoked by alias); 26 Mar 2004 21:05:08 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 4692 invoked from network); 26 Mar 2004 21:05:06 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sources.redhat.com with SMTP; 26 Mar 2004 21:05:06 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.10/8.12.10) with ESMTP id i2QL561Z006379 for ; Fri, 26 Mar 2004 16:05:06 -0500 Received: from zenia.home.redhat.com (porkchop.devel.redhat.com [172.16.58.2]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id i2QL53j09274; Fri, 26 Mar 2004 16:05:04 -0500 To: Kevin Buettner Cc: gdb-patches@sources.redhat.com, Daniel Jacobowitz Subject: Re: RFA: correct size of long double on PPC Linux References: <20040325222358.1e0ccbe8@saguaro> <20040326151957.GA15739@nevyn.them.org> <20040326092331.48ba4547@saguaro> From: Jim Blandy Date: Fri, 26 Mar 2004 21:05:00 -0000 In-Reply-To: <20040326092331.48ba4547@saguaro> Message-ID: User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2004-03/txt/msg00684.txt.bz2 Kevin Buettner writes: > On 26 Mar 2004 10:45:13 -0500 > Jim Blandy wrote: > > > Daniel Jacobowitz writes: > > > > > On Thu, Mar 25, 2004 at 10:23:58PM -0700, Kevin Buettner wrote: > > > > On 24 Mar 2004 13:10:33 -0500 > > > > Jim Blandy wrote: > > > > > > > > > 2004-03-24 Jim Blandy > > > > > > > > > > * ppc-linux-tdep.c (ppc_linux_init_abi): Long doubles are eight > > > > > bytes long on PPC Linux. > > > > > > > > Can you provide the ABI reference for this? > > > > > > > > According to the documentation that I have (which is the System V ABI > > > > PowerPC Processor Supplement), the size of a long double is 16 bytes. > > > > > > Yes - this is one of the known warts in the PPC GNU/Linux ABI. People > > > have been talking for years about fixing it to match the SysV ABI. GCC > > > only recently got 128-bit long double support on PPC, so it may be > > > changing soon; but for all existing PPC GNU/Linux systems I know of, > > > eight bytes is correct. > > > > I went to the Linux Standards Base, and it said that programs that use > > 'long double' on PPC Linux are non-conformant. So I figured the best > > I could do was to make GDB match GCC. > > Okay, this patch is approved then, so long as you add a suitable comment > about PPC Linux deviating from the System V ABI on this matter. Okay, thanks. I've committed the following: 2004-03-24 Jim Blandy * ppc-linux-tdep.c (ppc_linux_init_abi): Long doubles are eight bytes long on PPC Linux. Index: ppc-linux-tdep.c =================================================================== RCS file: /cvs/src/src/gdb/ppc-linux-tdep.c,v retrieving revision 1.54 retrieving revision 1.55 diff -c -c -F'^(' -r1.54 -r1.55 *** ppc-linux-tdep.c 23 Mar 2004 14:47:56 -0000 1.54 --- ppc-linux-tdep.c 26 Mar 2004 20:59:38 -0000 1.55 *************** *** 1076,1081 **** --- 1076,1090 ---- if (tdep->wordsize == 4) { + /* NOTE: jimb/2004-03-26: The System V ABI PowerPC Processor + Supplement says that long doubles are sixteen bytes long. + However, as one of the known warts of its ABI, PPC GNU/Linux + uses eight-byte long doubles. GCC only recently got 128-bit + long double support on PPC, so it may be changing soon. The + Linux Standards Base says that programs that use 'long + double' on PPC GNU/Linux are non-conformant. */ + set_gdbarch_long_double_bit (gdbarch, 8 * TARGET_CHAR_BIT); + /* Until November 2001, gcc did not comply with the 32 bit SysV R4 ABI requirement that structures less than or equal to 8 bytes should be returned in registers. Instead GCC was using