* ppc-linux-tdep.c (ppc_linux_init_abi): Long doubles are eight
authorJim Blandy <jimb@codesourcery.com>
Fri, 26 Mar 2004 20:59:38 +0000 (20:59 +0000)
committerJim Blandy <jimb@codesourcery.com>
Fri, 26 Mar 2004 20:59:38 +0000 (20:59 +0000)
bytes long on PPC GNU/Linux.

gdb/ChangeLog
gdb/ppc-linux-tdep.c

index 954f879b911361f2f35bbd21025a77e1f6e9b6f6..9ff88461d242f87160de4a0eb344fe818130c901 100644 (file)
@@ -1,3 +1,8 @@
+2004-03-26  Jim Blandy  <jimb@redhat.com>
+
+       * ppc-linux-tdep.c (ppc_linux_init_abi): Long doubles are eight
+       bytes long on PPC GNU/Linux.
+
 2004-03-26  David Carlton  <carlton@kealia.com>
 
        * PROBLEMS: Refer to gdb/1588 instead of gdb/826.
index ba2733ee7175a24065f1c9cc295685b3de8d27c0..c2223d29fc3e813cbc3adef2369992500b124245 100644 (file)
@@ -1076,6 +1076,15 @@ ppc_linux_init_abi (struct gdbarch_info info,
 
   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