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

--- Comment #13 from Patrick McGehearty <patrick.mcgehearty at oracle dot com> 
---
I may be mistaken about the source of the issue being glibc.
Perhaps it is a system include file issue? Here are some
more details.

Here are some of the error messages I got when building with
__LIBGCC_KF_MAX__ of gcc135.fsffrance.org using the installed
gcc (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC))

- - - - - -
../../../libgcc/config/rs6000/_divkc3.c: In function ‘__divkc3’:
../../../libgcc/config/rs6000/_divkc3.c:41:17: error: 
‘__LIBGCC_KF_MAX__’ undeclared (first use in this function)
    41 | #define RBIG   (__LIBGCC_KF_MAX__ / 2)
       |                 ^~~~~~~~~~~~~~~~~
../../../libgcc/config/rs6000/_divkc3.c:68:23: note: in expansion of 
macro ‘RBIG’
    68 |       if (FABS (d) >= RBIG)
       |                       ^~~~
... repeated for ‘__LIBGCC_KF_EPSILON__ and __LIBGCC_KF_MIN__
- - - - - -

__LIBGCC_KF_MAX__ should have been defined in the file 
gcc/c-family/c-cppbuiltin.c
in the loop starting at line 1274:
       /* Properties of floating-point modes for libgcc2.c.  */
       opt_scalar_float_mode mode_iter;
       FOR_EACH_MODE_IN_CLASS (mode_iter, MODE_FLOAT)
         {
           scalar_float_mode mode = mode_iter.require ();
...

My guess is that however the modes are defined for a given 
platform/compile option
combination, KF is not available with this particular compiler/glibc 
combination.
I did some digging in the latest sources and could not find a specific file
which defined KF, TF, IF, etc. I assume it exists and I just did not 
look in the
right places.

I did try setting my path to pick up a current upstream gcc 
(PATH=~/usr/bin:$PATH; export PATH).
It did not make a significant difference in the error message.

In any case, it is moot since Joseph Myers stated that I should not 
include the
"if compiling for ibm doubledouble" code in _divkc3.c because _divkc3.c 
is only
used for ieee128 code. Since he is the one who guided me in my changes 
to c-cppbuiltin.c,
I assume he knows more than I on this topic.

- patrick



On 10/6/2021 11:32 AM, segher at gcc dot gnu.org wrote:
> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101104
>
> --- Comment #12 from Segher Boessenkool <segher at gcc dot gnu.org> ---
> (In reply to Patrick McGehearty from comment #8)
>> My challenge is that the very old glibc on gcc135.fsffrance.org
>> does not know about _TF_ vs _KF_ and _IF_. It refused to
>> build the new libgcc/config/rs6000/_divkc3.c file.
>> That's why I did not test the result in place.
> The glibc on gcc135 is not older than the oldest supported version, so your
> code should work just fine there.  Or do you mean this is not supported and
> configure makes sure this is not built?
>

Reply via email to