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? >