Add symbols tracking
I added a symbols file and it works for Debian Unstable & Ubuntu 23.10.
When I did a test build for armhf, there was a huge symbols diff. It look like things like unsigned long are being included in the symbols file and this doesn't feel portable to me. For instance.
- (c++)"Glib::ustring::compare(unsigned long, unsigned long, Glib::UStringView) const@Base" 2.76
I think for Ubuntu's goal of tracking whether important symbols/functions go away in new releases, we don't need to track symbols for armhf.
I didn't do a detailed review, but it looks like riscv64 has a more manageable diff, using "lock policy 1" instead of 2 like this:
- (c++)"typeinfo for std::_Mutex_base<(__gnu_cxx::_Lock_policy)2>@Base" 2.76
I am concerned about how much churn there will be for new glib & gtk versions.
Yesterday, I added a symbols file (for all architectures) for pangomm2.48 . I think cairomm1.16 is also similarly doable. cairo doesn't do new stable releases often and I think pango won't be too bad either.
By the way, I used c++filt as suggested on the Debian wiki and I also used sort -u to sort and minimize the symbols (the c++filt output ends up with a few duplicates because of how the process works). c++filt gets rid of the non-human-readable stuff like _ZTSSt19_Sp and I think it's required if we want to understand why symbols disappear.