[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Symbols files for C++ libraries



Am 06.12.2019 um 17:37 schrieb Ole Streicher:
How should one handle this?

Best regards

Ole

Arch dependend symbols are a pain in the ... :D

there are some approaches to handle it - one could have a look into the KDE packaging tools and packaging how the KDE team handle this. I use a different approach in LXQt - i mangle and sort the symbols and make them unique afterwards. After that i mark symbols that are not in every architecture as optional and when in good mood i list the architectures (positive or negative)

Example:

 (c++)"std::__detail::_Map_base<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Fm::FileInfoList>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Fm::FileInfoList> >, std::__detail::_Select1st, std::equal_to<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::hash<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true>, true>::operator[](std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)@Base" 0.13.0~
 (optional|c++)"std::pair<std::_Rb_tree_iterator<unsigned int>, bool> std::_Rb_tree<unsigned int, unsigned int, std::_Identity<unsigned int>, std::less<unsigned int>, std::allocator<unsigned int> >::_M_insert_unique<unsigned int>(unsigned int&&)@Base" 0.14.1~
 (c++)"std::unique_ptr<Fm::LibFmQt, std::default_delete<Fm::LibFmQt> >::~unique_ptr()@Base" 0.14.0~
 (c++)"std::vector<Fm::BrowseHistoryItem, std::allocator<Fm::BrowseHistoryItem> >::_M_erase(__gnu_cxx::__normal_iterator<Fm::BrowseHistoryItem*, std::vector<Fm::BrowseHistoryItem, std::allocator<Fm::BrowseHistoryItem> > >)@Base" 0.12.0
 (optional|c++|arch= !i386 !mips !mipsel !s390x !alpha !hurd-i386 !powerpc !ppc64 )"std::vector<Fm::DirTreeModelItem*, std::allocator<Fm::DirTreeModelItem*> >::_M_erase(__gnu_cxx::__normal_iterator<Fm::DirTreeModelItem**, std::vector<Fm::DirTreeModelItem*, std::allocator<Fm::DirTreeModelItem*> > >)@Base" 0.14.0~


the very simple tool in lxqt-build-tools is symmangle - it create *.mangled files that can be compared with or used as symbols files after minimal changes,

cheers Alf

Reply to: