Hmm the library publishes a load of symbols that seem unnecessary at best:
$ readelf -Ws /usr/local/lib/libprotobuf-lite.so | grep -v " UND " | grep -v 6google8protobuf | wc -l 123
2.6.1 seems far more reasonable:
$ readelf -Ws /usr/lib/x86_64-linux-gnu/libprotobuf-lite.so.9 | grep -v " UND " | grep -v 6google8protobuf | wc -l 10
I'm especially suspicious of the following leading to entanglement with libstdc++:
$ readelf -Ws /usr/local/lib/libprotobuf-lite.so.10 | grep -v " UND " | grep -v 6google8protobuf | grep _ZNS 402: 0000000000023080 474 FUNC WEAK DEFAULT 12 _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE19_M_emplace_back_auxIJS5_EEEvDpOT_ 552: 000000000001b2c0 220 FUNC WEAK DEFAULT 12 _ZNSt6vectorIPFvvESaIS1_EE19_M_emplace_back_auxIJRKS1_EEEvDpOT_ 700: 0000000000023260 117 FUNC WEAK DEFAULT 12 _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12emplace_backIJS5_EEEvDpOT_ 39: 0000000000023310 194 FUNC LOCAL DEFAULT 12 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag.isra.25 40: 0000000000023310 194 FUNC LOCAL DEFAULT 12 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag.isra.20 46: 000000000001c4a0 194 FUNC LOCAL DEFAULT 12 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag.isra.29 47: 000000000001c4a0 194 FUNC LOCAL DEFAULT 12 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag.isra.23 72: 0000000000019740 194 FUNC LOCAL DEFAULT 12 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag.isra.42 73: 0000000000019740 194 FUNC LOCAL DEFAULT 12 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag.isra.36 78: 000000000001b3a0 194 FUNC LOCAL DEFAULT 12 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag.isra.30 87: 000000000001e820 194 FUNC LOCAL DEFAULT 12 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPcEEvT_S7_St20forward_iterator_tag.isra.45 88: 000000000001e820 194 FUNC LOCAL DEFAULT 12 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag.isra.39 115: 000000000002ea80 174 FUNC LOCAL DEFAULT 12 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag.isra.21.constprop.32 466: 0000000000023260 117 FUNC WEAK DEFAULT 12 _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12emplace_backIJS5_EEEvDpOT_ 776: 000000000001b2c0 220 FUNC WEAK DEFAULT 12 _ZNSt6vectorIPFvvESaIS1_EE19_M_emplace_back_auxIJRKS1_EEEvDpOT_ 777: 0000000000023080 474 FUNC WEAK DEFAULT 12 _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE19_M_emplace_back_auxIJS5_EEEvDpOT_
Hmm the library publishes a load of symbols that seem unnecessary at best:
$ readelf -Ws /usr/local/ lib/libprotobuf -lite.so | grep -v " UND " | grep -v 6google8protobuf | wc -l
123
2.6.1 seems far more reasonable:
$ readelf -Ws /usr/lib/ x86_64- linux-gnu/ libprotobuf- lite.so. 9 | grep -v " UND " | grep -v 6google8protobuf | wc -l
10
I'm especially suspicious of the following leading to entanglement with libstdc++:
$ readelf -Ws /usr/local/ lib/libprotobuf -lite.so. 10 | grep -v " UND " | grep -v 6google8protobuf | grep _ZNS t7__cxx1112basi c_stringIcSt11c har_traitsIcESa IcEEESaIS5_ EE19_M_ emplace_ back_auxIJS5_ EEEvDpOT_ vvESaIS1_ EE19_M_ emplace_ back_auxIJRKS1_ EEEvDpOT_ t7__cxx1112basi c_stringIcSt11c har_traitsIcESa IcEEESaIS5_ EE12emplace_ backIJS5_ EEEvDpOT_ _cxx1112basic_ stringIcSt11cha r_traitsIcESaIc EE12_M_ constructIPcEEv T_S7_St20forwar d_iterator_ tag.isra. 25 _cxx1112basic_ stringIcSt11cha r_traitsIcESaIc EE12_M_ constructIPKcEE vT_S8_St20forwa rd_iterator_ tag.isra. 20 _cxx1112basic_ stringIcSt11cha r_traitsIcESaIc EE12_M_ constructIPcEEv T_S7_St20forwar d_iterator_ tag.isra. 29 _cxx1112basic_ stringIcSt11cha r_traitsIcESaIc EE12_M_ constructIPKcEE vT_S8_St20forwa rd_iterator_ tag.isra. 23 _cxx1112basic_ stringIcSt11cha r_traitsIcESaIc EE12_M_ constructIPcEEv T_S7_St20forwar d_iterator_ tag.isra. 42 _cxx1112basic_ stringIcSt11cha r_traitsIcESaIc EE12_M_ constructIPKcEE vT_S8_St20forwa rd_iterator_ tag.isra. 36 _cxx1112basic_ stringIcSt11cha r_traitsIcESaIc EE12_M_ constructIPcEEv T_S7_St20forwar d_iterator_ tag.isra. 30 _cxx1112basic_ stringIcSt11cha r_traitsIcESaIc EE12_M_ constructIPcEEv T_S7_St20forwar d_iterator_ tag.isra. 45 _cxx1112basic_ stringIcSt11cha r_traitsIcESaIc EE12_M_ constructIPKcEE vT_S8_St20forwa rd_iterator_ tag.isra. 39 _cxx1112basic_ stringIcSt11cha r_traitsIcESaIc EE12_M_ constructIPKcEE vT_S8_St20forwa rd_iterator_ tag.isra. 21.constprop. 32 t7__cxx1112basi c_stringIcSt11c har_traitsIcESa IcEEESaIS5_ EE12emplace_ backIJS5_ EEEvDpOT_ vvESaIS1_ EE19_M_ emplace_ back_auxIJRKS1_ EEEvDpOT_ t7__cxx1112basi c_stringIcSt11c har_traitsIcESa IcEEESaIS5_ EE19_M_ emplace_ back_auxIJS5_ EEEvDpOT_
402: 0000000000023080 474 FUNC WEAK DEFAULT 12 _ZNSt6vectorINS
552: 000000000001b2c0 220 FUNC WEAK DEFAULT 12 _ZNSt6vectorIPF
700: 0000000000023260 117 FUNC WEAK DEFAULT 12 _ZNSt6vectorINS
39: 0000000000023310 194 FUNC LOCAL DEFAULT 12 _ZNSt7_
40: 0000000000023310 194 FUNC LOCAL DEFAULT 12 _ZNSt7_
46: 000000000001c4a0 194 FUNC LOCAL DEFAULT 12 _ZNSt7_
47: 000000000001c4a0 194 FUNC LOCAL DEFAULT 12 _ZNSt7_
72: 0000000000019740 194 FUNC LOCAL DEFAULT 12 _ZNSt7_
73: 0000000000019740 194 FUNC LOCAL DEFAULT 12 _ZNSt7_
78: 000000000001b3a0 194 FUNC LOCAL DEFAULT 12 _ZNSt7_
87: 000000000001e820 194 FUNC LOCAL DEFAULT 12 _ZNSt7_
88: 000000000001e820 194 FUNC LOCAL DEFAULT 12 _ZNSt7_
115: 000000000002ea80 174 FUNC LOCAL DEFAULT 12 _ZNSt7_
466: 0000000000023260 117 FUNC WEAK DEFAULT 12 _ZNSt6vectorINS
776: 000000000001b2c0 220 FUNC WEAK DEFAULT 12 _ZNSt6vectorIPF
777: 0000000000023080 474 FUNC WEAK DEFAULT 12 _ZNSt6vectorINS