https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110077
--- Comment #9 from Jonathan Wakely <redi at gcc dot gnu.org> --- Thanks for the quick response! For x86 both these conditions are false: #if defined(__STDCPP_FLOAT128_T__) && defined(_GLIBCXX_LDOUBLE_IS_IEEE_BINARY128) ... #elif defined(__STDCPP_FLOAT128_T__) && defined(_GLIBCXX_HAVE_FLOAT128_MATH) ... #endif and that means we the header doesn't declare from_chars for _Float128. With my changes for PR 109921 (r14-1431) that from_chars overload gets defined in the library, causing the abi-check error. But if it's not present in the header, it's useless to define it in the library, it can't be called. One solution would be to just add the declaration to the header, and adjust the exports so this new symbol is exported at GLIBCXX_3.4.32 not GLIBCXX_3.4.31 Alternatively, I need to find the right set of conditions to suppress the definition in the library.