https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85440

Dennis Clarke <dclarke at blastwave dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Known to work|8.0                         |

--- Comment #14 from Dennis Clarke <dclarke at blastwave dot org> ---
We are going in circles here. 

Neither libquadmath nor the required header exist nor function on the
powerpc64 target wherein the processor is NOT an IBM power type unit.

It is NOT known to work with gcc version 8 either as I have tested for
that and the answer is a clear no. 

This is NOT a power8 nor a power7 nor any version thereof. This is the
classic IBM PowerPC 970FX processor.  

This is big endian.

There is NOT an option for "VSX by default".

The real issue seems to lay down inside glibc, which I was looking at 
from the very beginning and I had already said the "non-IBM Power 
variations are simply not supported" and in glibc 2.26 we see : 

  On ia64, powerpc64le, x86-32, and x86-64, the math library now implements
  128-bit floating point as defined by ISO/IEC/IEEE 60559:2011 (IEEE
  754-2008) and ISO/IEC TS 18661-3:2015.  Contributed by Paul E. Murphy,
  Gabriel F. T. Gomes, Tulio Magno Quites Machado Filho, and Joseph Myers.

  To compile programs that use this feature, the compiler must support
  128-bit floating point with the type name _Float128 (as defined by TS
  18661-3) or __float128 (the nonstandard name used by GCC for C++, and for
  C prior to version 7).  _GNU_SOURCE or __STDC_WANT_IEC_60559_TYPES_EXT__
  must be defined to make the new interfaces visible.

  The new functions and macros correspond to those present for other
  floating-point types (except for a few obsolescent interfaces not
  supported for the new type), with F128 or f128 suffixes; for example,
  strtof128, HUGE_VAL_F128 and cosf128.  Following TS 18661-3, there are no
  printf or scanf formats for the new type; the strfromf128 and strtof128
  interfaces should be used instead.

This was soon followed by 2.27 wherein : 

  On platforms where long double has the IEEE binary128 format (aarch64,
  alpha, mips64, riscv, s390 and sparc), the math library now implements
  _Float128 interfaces for that type, as defined by ISO/IEC TS 18661-3:2015.
  These are the same interfaces added in version 2.26 for some platforms where
  this format is supported but is not the format of long double.

However the gcc version 8 20180415 will compile C source and produce assembly
that clearly uses the 128-bit IEEE 754-2008 format for floating point data
however the options for -mfloat128 and -mfloat128-hardware clearly won't work
here.  The manual page is slightly misleading for "RS/6000 and PowerPC" options
as really there needs to exist a page for "IBM Power" options. 

The options for abi ibmlongdouble and ieeelongdouble both work as expected and
I
have already shown that along with the output assembly wherein we do actually
get both 128-bit datatypes : 


gcc: warning: using IBM extended precision long double
cc1: warning: using IBM extended precision long double
        .quad   0x400921fb54442d18,0x3ca1a62633145c06

$ /usr/local/gcc7/bin/gcc -m64 -g -Wl,-rpath=/usr/local/lib -mcpu=970 -maltivec
-mfull-toc -mregnames -mabi=ieeelongdouble -S -o ld.s ld.c ; grep "quad" ld.s |
grep "0x"
gcc: warning: using IEEE extended precision long double
cc1: warning: using IEEE extended precision long double
        .quad   0x4000921fb54442d1,0x8469898cc51701b8

Regardless how you slice it here and want to say "works in ver 8" it simply
does
not and I have a powerpc 64-bit big-endian machine right here that bootstraps 
both version 7.3.0 and the available ver 8 test tarball just fine.  Neither can
do anything with libquadmath on this architecture as it is clearly not one of
the IBM Power variants under Power ISA v.2.07 spec.  Perhaps there needs to be
a new manual page for "IBM RS/6000 and PowerPC Options" because really there
exists the "IBM Power" systems and then the older "IBM RS/6000 and PowerPC
Options".
That may also cover the whole SoC type chips that we saw so many of from
FreeScale
and Motorola at one point. 

Someone, whomever it is, stop flipping this as "known to work on 8" where that
just isn't true.

Reply via email to