* 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>
		
			
				
	
	
		
			20 lines
		
	
	
	
		
			592 B
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			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]]
 |