https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94987
Bug ID: 94987
Summary: Missing vtable for std::__future_base::_State_base on
libstdc++.a
Product: gcc
Version: 9.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libstdc++
Assignee: unassigned at gcc dot gnu.org
Reporter: kndevl at outlook dot com
Target Milestone: ---
# Ubuntu 18.04 has gcc 5.5.0
$ nm -C `g++ --print-file-name libstdc++.a` | grep 'vtable for
std::__future_base::_State_base'
< empty output >
------------------------------------------------------------
$ nm -CD `g++ --print-file-name libstdc++.so` | grep 'vtable for
std::__future_base::_State_base'
00000000003d3e58 V vtable for std::__future_base::_State_base
------------------------------------------------------------
# Ubuntu 14.04 has gcc 4.8.4
$ nm -C `g++ --print-file-name libstdc++.a` | grep 'vtable for
std::__future_base::_State_base'
nm: compatibility-debug_list-2.o: no symbols
0000000000000000 V vtable for std::__future_base::_State_base
------------------------------------------------------------
$ nm -CD `g++ --print-file-name libstdc++.so` | grep 'vtable for
std::__future_base::_State_base'
00000000002eb880 V vtable for std::__future_base::_State_base
------------------------------------------------------------
I built a static library on 4.8.4 and tried using it on 5.5.0 with static
libstdc++. This library depends on the missing symbol and does not compile on
newer libstdc++.a. I tried this on gcc 9.3.0 too and the libstdc++.a does not
have this symbol. Dynamic linking with libstdc++.so works fine.
I keep track of breaking ABI changes from
https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html and I could not find
anything related to this. Is this a breaking change? If so, where do I keep
myself updated on these?