[gcc r13-5164] libstdc++: [_GLIBCXX_INLINE_VERSION] Add to_chars/from_chars symbols export

Francois Dumont fdumont@gcc.gnu.org
Sat Jan 14 13:27:07 GMT 2023


https://gcc.gnu.org/g:e176c031f02d01623b697c3c78c85cebb0506e87

commit r13-5164-ge176c031f02d01623b697c3c78c85cebb0506e87
Author: François Dumont <fdumont@gcc.gnu.org>
Date:   Sat Nov 26 08:51:58 2022 +0100

    libstdc++: [_GLIBCXX_INLINE_VERSION] Add to_chars/from_chars symbols export
    
    libstdc++-v3/ChangeLog
    
            * include/std/format [_GLIBCXX_INLINE_VERSION](to_chars): Adapt __asm symbol
            specifications.
            * config/abi/pre/gnu-versioned-namespace.ver: Add to_chars/from_chars symbols
            export.

Diff:
---
 libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver |  6 ++++++
 libstdc++-v3/include/std/format                         | 12 ++++++++++++
 2 files changed, 18 insertions(+)

diff --git a/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver b/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
index 06ccaa80a58..7fc81514808 100644
--- a/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
+++ b/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver
@@ -142,6 +142,12 @@ GLIBCXX_8.0 {
     _ZN14__gnu_parallel9_Settings3getEv;
     _ZN14__gnu_parallel9_Settings3setERS0_;
 
+    # to_chars/from_chars _Float128
+    _ZNSt3__88to_charsEPcS0_DF128_;
+    _ZNSt3__88to_charsEPcS0_DF128_NS_12chars_formatE;
+    _ZNSt3__88to_charsEPcS0_DF128_NS_12chars_formatEi;
+    _ZNSt3__810from_charsEPKcS1_RDF128_NS_12chars_formatE;
+
   local:
     *;
 };
diff --git a/libstdc++-v3/include/std/format b/libstdc++-v3/include/std/format
index 77f7c9fef3f..1cce4ebd45c 100644
--- a/libstdc++-v3/include/std/format
+++ b/libstdc++-v3/include/std/format
@@ -1296,15 +1296,27 @@ namespace __format
   // Make them available as std::__format::to_chars.
   to_chars_result
   to_chars(char*, char*, _Float128) noexcept
+#  if _GLIBCXX_INLINE_VERSION
+    __asm("_ZNSt3__88to_charsEPcS0_DF128_");
+#  else
     __asm("_ZSt8to_charsPcS_DF128_");
+#  endif
 
   to_chars_result
   to_chars(char*, char*, _Float128, chars_format) noexcept
+#  if _GLIBCXX_INLINE_VERSION
+    __asm("_ZNSt3__88to_charsEPcS0_DF128_NS_12chars_formatE");
+#  else
     __asm("_ZSt8to_charsPcS_DF128_St12chars_format");
+#  endif
 
   to_chars_result
   to_chars(char*, char*, _Float128, chars_format, int) noexcept
+#  if _GLIBCXX_INLINE_VERSION
+    __asm("_ZNSt3__88to_charsEPcS0_DF128_NS_12chars_formatEi");
+#  else
     __asm("_ZSt8to_charsPcS_DF128_St12chars_formati");
+#  endif
 # endif
 #endif


More information about the Libstdc++-cvs mailing list