Subject: [bug#47349] [PATCH] gnu: cross-base: Relax check for powerpc64le

From: Andreas Enge <[email-masked]>
Date: Fri, 26 Mar 2021 11:31:16 +0100

Hello Chris,

I have no idea about cross compilers, but it would certainly be nice if
the final gcc supported long doubles.

As a check, you can have a look at the log file for building gmp,
obtained with "guix build --log-file gmp". If you grep for "long double",
it should contain a line
   checking for long double... yes
Hm, just "having" long double is maybe not all we want.

>From the gcc documentation at https://gcc.gnu.org/install/configure.html:
--with-long-double-128
    Specify if long double type should be 128-bit by default on selected GNU/Linux architectures. If using --without-long-double-128, long double will be by default 64-bit, the same as double type. When neither of these configure options are used, the default will be 128-bit long double when built against GNU C Library 2.4 and later, 64-bit long double otherwise.

Of course we would like long double to have 128 bits, since otherwise there
is no difference with double. And at least with the current gcc and a glibc
from 2006 or later, the flag should not be neeed.

On my x86_64 machine, sizeof(long double) is 16 bytes with gcc@10, 5 or 7.
Could you try to compile and run the trivial program
#include <stdio.h>
void main () {
   printf ("long double %i\n", sizeof (long double));
}
and see what it outputs on powerpc?

Well, while --with-long-double-128 should not be needed since it should be
the default, you may as well add it to the flags, since it is the desired
behaviour.

Andreas