]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
s390: Fix ABI issue in libstdc++.so.6
authorJakub Jelinek <jakub@redhat.com>
Mon, 12 Jan 2026 11:40:31 +0000 (12:40 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 12 Jan 2026 11:41:41 +0000 (12:41 +0100)
On Sat, Jan 10, 2026 at 05:24:15PM +0100, Stefan Schulze Frielinghaus wrote:
> libstdc++-v3/ChangeLog:
>
>       * config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Add
>       names {,P,K}DF16.

This is wrong - an ABI issue.

You can't export new symbols in CXXABI_1.3.14 symbol version when they
weren't exported there in GCC 13.1 already.
Symbols new in GCC 16 like these should be exported in CXXABI_1.3.17.

Fixed thusly.

2026-01-12  Jakub Jelinek  <jakub@redhat.com>

* config/abi/pre/gnu.ver (CXXABI_1.3.14): Don't export _ZTI*DF16_ on
s390x.
(CXXABI_1.3.17): Export _ZTI*DF16_ on s390x.
* config/abi/post/s390x-linux-gnu/baseline_symbols.txt: Remove
_ZTI{,P,K}DF16_.

libstdc++-v3/config/abi/post/s390x-linux-gnu/baseline_symbols.txt
libstdc++-v3/config/abi/pre/gnu.ver

index b29c71a0753d9aed9be8d777e41809b84c068e8e..8c204af66fcfca9f06f878677cdf3fa822948caf 100644 (file)
@@ -4951,7 +4951,6 @@ OBJECT:15:_ZTSSt8messagesIwE@@GLIBCXX_3.4
 OBJECT:15:_ZTSSt8numpunctIcE@@GLIBCXX_3.4
 OBJECT:15:_ZTSSt8numpunctIwE@@GLIBCXX_3.4
 OBJECT:16:_ZTIDF128_@@CXXABI_1.3.14
-OBJECT:16:_ZTIDF16_@@CXXABI_1.3.14
 OBJECT:16:_ZTIDF32_@@CXXABI_1.3.14
 OBJECT:16:_ZTIDF32x@@CXXABI_1.3.14
 OBJECT:16:_ZTIDF64_@@CXXABI_1.3.14
@@ -5616,7 +5615,6 @@ OBJECT:30:_ZTSSt7codecvtIDsDu11__mbstate_tE@@GLIBCXX_3.4.26
 OBJECT:32:_ZNSbIwSt11char_traitsIwESaIwEE4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4
 OBJECT:32:_ZNSs4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4
 OBJECT:32:_ZTIPDF128_@@CXXABI_1.3.14
-OBJECT:32:_ZTIPDF16_@@CXXABI_1.3.14
 OBJECT:32:_ZTIPDF32_@@CXXABI_1.3.14
 OBJECT:32:_ZTIPDF32x@@CXXABI_1.3.14
 OBJECT:32:_ZTIPDF64_@@CXXABI_1.3.14
@@ -5629,7 +5627,6 @@ OBJECT:32:_ZTIPDn@@CXXABI_1.3.5
 OBJECT:32:_ZTIPDs@@CXXABI_1.3.3
 OBJECT:32:_ZTIPDu@@CXXABI_1.3.12
 OBJECT:32:_ZTIPKDF128_@@CXXABI_1.3.14
-OBJECT:32:_ZTIPKDF16_@@CXXABI_1.3.14
 OBJECT:32:_ZTIPKDF32_@@CXXABI_1.3.14
 OBJECT:32:_ZTIPKDF32x@@CXXABI_1.3.14
 OBJECT:32:_ZTIPKDF64_@@CXXABI_1.3.14
index 54b71c3de6672b13d9143ffa3165940bacf591c5..fb78782eaf6d76ebe924f23ccc84e76371d61a1d 100644 (file)
@@ -2899,9 +2899,16 @@ CXXABI_1.3.14 {
 
     # typeinfo for _Float{16,32,64,128,32x,64x,128x} and
     # __bf16/bfloat16_t
+#ifndef __s390x__
     _ZTIDF[0-9]*[_x];
     _ZTIPDF[0-9]*[_x];
     _ZTIPKDF[0-9]*[_x];
+#else
+    # No _Float16 on s390x in GCC 13.
+    _ZTIDF[0-9]*[0-57-9][_x];
+    _ZTIPDF[0-9]*[0-57-9][_x];
+    _ZTIPKDF[0-9]*[0-57-9][_x];
+#endif
 #ifndef __riscv
     _ZTIDF16b;
     _ZTIPDF16b;
@@ -2933,6 +2940,13 @@ CXXABI_1.3.16 {
 CXXABI_1.3.17 {
     # std::exception_ptr::_M_exception_ptr_cast
     _ZNKSt15__exception_ptr13exception_ptr21_M_exception_ptr_castERKSt9type_info;
+
+#ifdef __s390x__
+    _ZTIDF16_;
+    _ZTIPDF16_;
+    _ZTIPKDF16_;
+#endif
+
 #ifdef __riscv
 } CXXABI_1.3.16;
 #else