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?

Reply via email to