On Sun, 20 Dec 2020, Maciej W. Rozycki wrote: > On Thu, 17 Dec 2020, Patrick Palka via Gcc-patches wrote: > > > > >libstdc++-v3/ChangeLog: > > > > > > > > * config/abi/pre/gnu.ver: Add new exports. > > > > * include/std/charconv (to_chars): Declare the floating-point > > > > overloads for float, double and long double. > > > > * src/c++17/Makefile.am (sources): Add floating_to_chars.cc. > > > > * src/c++17/Makefile.in: Regenerate. > > > > * src/c++17/floating_to_chars.cc: New file. > > > > (to_chars): Define for float, double and long double. > > > > * testsuite/20_util/to_chars/long_double.cc: New test. > > > > > > Sorry it took so long to review, this is OK for trunk. > > > > > > The patch needs some minor changes to rebase it on the current trunk: > > > The linker script has additions since you send this patch, so the > > > context in the patch is wrong and it doesn't apply, and in <charconv> > > > the first line of context in the patch needs to have 'noexcept' added. > > > That rebase should be easy though. > > > > > > I'll look at adding __float128 support for powerpc64le. > > > > Thanks a lot. I committed the patch series just now, after rebasing > > and retesting on x86_64, aarch64 and ppc64le. > > This breaks with the `vax-netbsdelf' target in GCC compilation: > > .../libstdc++-v3/src/c++17/floating_to_chars.cc:126:38: error: static > assertion failed > 126 | static_assert(__DBL_MANT_DIG__ == 53); > | ^ > make[5]: *** [Makefile:577: floating_to_chars.lo] Error 1 > > So what's the fallback/alternative for non-IEEE-754 FP targets? Shouldn't > we call into libc (possibly with a warning attribute) for the formats we > don't have explicit handcoded support for?
Sorry about this bootstrap breakage. For now, we should probably just disable the entire file/implementation on such targets until a proper fallback could be implemented. I posted a patch to that effect here https://gcc.gnu.org/pipermail/gcc-patches/2020-December/562379.html which is pending review/approval. Until then, manually stubbing out all of floating_to_chars.cc should probably suffice to restore bootstrap on this target.