https://gcc.gnu.org/g:6d8cb718431d5fa317e67a691a217c92729afe2b
commit r16-6715-g6d8cb718431d5fa317e67a691a217c92729afe2b Author: Jakub Jelinek <[email protected]> Date: Mon Jan 12 12:40:31 2026 +0100 s390: Fix ABI issue in libstdc++.so.6 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 <[email protected]> * 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_. Diff: --- .../config/abi/post/s390x-linux-gnu/baseline_symbols.txt | 3 --- libstdc++-v3/config/abi/pre/gnu.ver | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/libstdc++-v3/config/abi/post/s390x-linux-gnu/baseline_symbols.txt b/libstdc++-v3/config/abi/post/s390x-linux-gnu/baseline_symbols.txt index b29c71a0753d..8c204af66fcf 100644 --- a/libstdc++-v3/config/abi/post/s390x-linux-gnu/baseline_symbols.txt +++ b/libstdc++-v3/config/abi/post/s390x-linux-gnu/baseline_symbols.txt @@ -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 diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver index 54b71c3de667..fb78782eaf6d 100644 --- a/libstdc++-v3/config/abi/pre/gnu.ver +++ b/libstdc++-v3/config/abi/pre/gnu.ver @@ -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
