guix/gnu/packages/patches/gcc-11-libstdc++-powerpc.patch
Andreas Enge 31dd526e1c
gnu: gcc-11: Fix build on powerpc64le.
* gnu/packages/patches/gcc-11-libstdc++-powerpc.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register patch.
* gnu/packages/gcc.scm (make-libstdc++): Apply patch for gcc versions >= 11
and < 12 on ppc64le.

Co-authored-by: Christopher Baines <mail@cbaines.net>
Signed-off-by: Christopher Baines <mail@cbaines.net>
2023-04-14 11:14:47 +01:00

20 lines
592 B
Diff

--- a/libstdc++-v3/src/c++17/floating_from_chars.cc
+++ b/libstdc++-v3/src/c++17/floating_from_chars.cc
@@ -495,10 +495,16 @@
from_chars(const char* first, const char* last, __ieee128& value,
chars_format fmt) noexcept
{
+ errc ec = errc::invalid_argument;
+#if _GLIBCXX_USE_CXX11_ABI
buffer_resource mr;
pmr::string buf(&mr);
+#else
+ string buf;
+ if (!reserve_string(buf))
+ return make_result(first, 0, {}, ec);
+#endif
size_t len = 0;
- errc ec = errc::invalid_argument;
__try
{
if (const char* pat = pattern(first, last, fmt, buf)) [[likely]]