On Wed, Dec 05, 2018 at 07:50:30PM +0100, Gregor Riepl wrote: > I'm inclined to drop the symbols file altogether, as it really doesn't add any > value.
I beg to disagree, I tend to find symbols tracking quite important, and helped detecting and/or demostrating several ABI breakages in the past where upstream did not even realize they did. Or symbols that changes due to changes in some other libraries (recently I sheparded a library that moved vtk6 to vtk7, breaking ABI; not noticed because it didn't have a symbols file), etc etc. > The correct solution would be to use -fvisibility=hidden [1] and > properly tag symbols for the public API of libArcus and libSavitar. Yes, that would be the best indeed. It's quite sad that TTBOMK symbols visibility is not really standardized and it's a copiler-dependant thing ... :( I suspect that many optional symbols on the symbols file of this package could be squashed with a regex, but alas I can't help with that now since I'll be soon leaving for a 2-weeks travel and I don't think I would ever find the time to also look at this. Anyway, look at the gdcm repo for an idea of what I'm talking about. Anyway, the problem that dpkg-gensymbols is complaining about, it's because you missed a quote sign in a4f32173da0f7ab5c173d89fd556f0af242d2deb (didn't you notice this while test building before asking for sponsorship?). diff --git a/debian/libarcus3.symbols b/debian/libarcus3.symbols index 6bc9ef2..d44af1c 100644 --- a/debian/libarcus3.symbols +++ b/debian/libarcus3.symbols @@ -4,7 +4,7 @@ libArcus.so.3 libarcus3 #MINVER# (c++)"ErrorCollector::AddError(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)@Base" 2.3.1 (c++)"ErrorCollector::~ErrorCollector()@Base" 2.3.1 (c++|optional)"std::_Hashtable<unsigned int, std::pair<unsigned int const, google::protobuf::Message const*>, std::allocator<std::pair<unsigned int const, google::protobuf::Message const*> >, std::__detail::_Select1st, std::equal_to<unsigned int>, std::hash<unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_insert_unique_node(unsigned long, unsigned long, std::__detail::_Hash_node<std::pair<unsigned int const, google::protobuf::Message const*>, false>*, unsigned long)@Base" 3.3.0-2~ - (c++|optional)"std::_Hashtable<unsigned int, std::pair<unsigned int const, google::protobuf::Message const*>, std::allocator<std::pair<unsigned int const, google::protobuf::Message const*> >, std::__detail::_Select1st, std::equal_to<unsigned int>, std::hash<unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_insert_unique_node(unsigned int, unsigned int, std::__detail::_Hash_node<std::pair<unsigned int const, google::protobuf::Message const*>, false>*, unsigned int)@Base 3.3.0-2~ + (c++|optional)"std::_Hashtable<unsigned int, std::pair<unsigned int const, google::protobuf::Message const*>, std::allocator<std::pair<unsigned int const, google::protobuf::Message const*> >, std::__detail::_Select1st, std::equal_to<unsigned int>, std::hash<unsigned int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_insert_unique_node(unsigned int, unsigned int, std::__detail::_Hash_node<std::pair<unsigned int const, google::protobuf::Message const*>, false>*, unsigned int)@Base" 3.3.0-2~ (c++|optional)"void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag)@Base" 3.3.0-2~ (c++|optional)"void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag)@Base" 3.3.0-2~ (c++|optional)"std::_Sp_make_shared_tag::_S_ti()::__tag@Base" 3.3.0-2~ After that my local build failed because I locally export DPKG_GENSYMBOLS_CHECK_LEVEL=4 and it seems this new symbol is new: _ZNSt10_HashtableIPKN6google8protobuf10DescriptorESt4pairIKS4_jESaIS7_ENSt8__detail10_Select1stESt8equal_toIS4_ESt4hashIS4_ENS9_18_Mod_range_hashingENS9_20_Default_ranged_hashENS9_20_Prime_rehash_policyENS9_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNS9_10_Hash_nodeIS7_Lb0EEEm@Base Anyway, that's yet another std:: function leaked from who knows where, so nvm that… -- regards, Mattia Rizzolo GPG Key: 66AE 2B4A FCCF 3F52 DA18 4D18 4B04 3FCD B944 4540 .''`. more about me: https://mapreri.org : :' : Launchpad user: https://launchpad.net/~mapreri `. `'` Debian QA page: https://qa.debian.org/developer.php?login=mattia `-
signature.asc
Description: PGP signature